2017-07-12 148 views
0

我试图重定向用户到他们的个人资料页面,当他们登录到他们的帐户,重定向不起作用,我没有得到任何错误终点站。我正在使用最新版本的Django。登录URL不重定向,当用户在Django登录成功

主网址

from django.conf.urls import url, include 

from django.contrib import admin 
from authentication import views 
urlpatterns = [ 
    url(r'^admin/', admin.site.urls), 
    url(r'^$', views.index, name="index"), 
    url(r'^authentication/', include('authentication.urls')), 
    url(r'^emails/', include('emails.urls')), 
    url(r'^profiles/', include('profiles.urls',namespace='profiles')), 

]

型材网址

from django.conf.urls import url 
from profiles import views 

app_name='profiles' 
urlpatterns = [ 
url(r'^profile/(?P<user_id>\d+)/$', views.user_profile, name='user_profile'), 
] 

型材查看认证模块

def user_profile(request,user_id): 
    return render(request,'profiles/detail/profile.html') 

登录视图

def Login(request): 
    form = LoginForm() 
    regForm = SignUpForm() 

    if request.method == 'POST': 

     form = LoginForm(request.POST) 
     if form.is_valid(): 
      username = form.cleaned_data['login_username'] 
      password = form.cleaned_data['login_password'] 
      user = authenticate(request,username=username, password=password) 

      if user is not None: 
       login(request, user) 
       return redirect(reverse('profiles:user_profile',request.user.id)) 
      else: 
       return render(request, 'index.html',{'error':'The username and password didnt match','form':form,'regForm':regForm}) 
     else: 
      print 'form is not valid' 
    else: 
     return render(request, 'index.html',{'form':form,'regForm':regForm}) 

错误

enter code here包括URL配置 '2' 不会出现任何图案在它。如果您在文件中看到有效的模式,那么问题可能是由循环导入引起的。

+0

尝试'return redirect(reverse()))' – itzMEonTV

+0

显示完整的登录视图。 – Alasdair

+0

iv发布了我的完整登录代码 – thomaSmith

回答

0

的问题是与实际的登录表单模板,我没有在行动表单标签。

1
from django.urls import reverse 
if user is not None: 
    login(request, user) 
    return HttpResponseRedirect(reverse('profiles:user_profile',args=(request.user.id,))) 
0

尝试用这个,如果不工作或你不明白告诉我

def Login(request): 
    form = LoginForm() 
    regForm = SignUpForm() 

    if request.method == 'POST': 

     form = LoginForm(request.POST) 
     if form.is_valid(): 
      username = form.cleaned_data['login_username'] 
      password = form.cleaned_data['login_password'] 
      user = authenticate(request,username=username, password=password) 

      if user is not None: 
       login(request, user) 
       return redirect(reverse('profiles:user_profile',request.user.id)) 
      else: 
       return render(request, 'index.html',{'error':'The username and password didnt match','form':form,'regForm':regForm}) 
     else: 
      print 'form is not valid' 
    else: 
     if request.user.is_authenticated(): 
       return HttpResponseRedirect('success_url_here') 
     else: 
      return render(request, 'index.html','form':form,'regForm':regForm}) 
+0

它确实重定向,但我得到了一个错误,我上面张贴了 – thomaSmith

+0

我认为错误是在user_profuke视图中,参数user_id没有被使用,删除或给予使用 –