2016-11-19 95 views
1

我如何可以登录并重定向到他的“仪表板”,为管理网站登录表单,并重定向到他的“管理面板”如何在Django中创建两个不同的登录表单?

我一直在寻找和阅读,它可以通过创建一个ModelBackend完成并发现这是一个参考,但它并没有让我清楚如何做到这一点。 https://docs.djangoproject.com/en/1.8/topics/auth/customizing/

+0

您可以创建两个视图。第一个将重定向到“Dashboard”,第二个将重定向到“管理控制台”。 –

+0

通过登录表单您是否想要使用Django的默认登录页面,并且在成功登录后,它应该重新指引您进行其他登陆? –

+0

但是,我该怎么做?我正在寻找,只有ModelBackend找到:/而且比你多! –

回答

1

据我所知,您需要两个登录视图。在您的应用程序的views.py创建2次,例如:

def loginDashboard(request): 
    if request.user.is_authenticated(): 
    return HttpResponseRedirect('/') 
    if request.method == 'POST': 
    form = LoginForm(request.POST) 
    if form.is_valid(): 
     username = form.cleaned_data['username'] 
     password = form.cleaned_data['password'] 
     account = authenticate(username=username, password=password) 
     if account is not None: 
     login(request, account) 
#here is redirecting to dashboard 
      return HttpResponseRedirect('/dashboard/') 
     else: 
     return render(request, 'profiles/login.html', context) 
    else: 
     return render(request, 'profiles/login.html', context) 
    else: 
    form = LoginForm() 
    context = {'form':form} 
    return render(request, 'profiles/login.html', context) 

def loginAdminPanel(request): 
    if request.user.is_authenticated(): 
    return HttpResponseRedirect('/') 
    if request.method == 'POST': 
    form = LoginForm(request.POST) 
    if form.is_valid(): 
     username = form.cleaned_data['username'] 
     password = form.cleaned_data['password'] 
     account = authenticate(username=username, password=password) 
     if account is not None: 
     login(request, account) 
#here is redirecting to admin panel 
      return HttpResponseRedirect('/adminpanel/') 
     else: 
     return render(request, 'profiles/login.html', context) 
    else: 
     return render(request, 'profiles/login.html', context) 
    else: 
    form = LoginForm() 
    context = {'form':form} 
    return render(request, 'profiles/login.html', context) 

而且你的urls.py:

url(r'^login-dash/$', views.loginDashboard), 
url(r'^login-admin/$', views.loginAdminPanel), 

在这种情况下,你有两个登录页面(example.com/login-dashexample.com/login-admin

你的forms.py:

class LoginForm(forms.Form): 
username = forms.CharField(label=(u'Username')) 
password = forms.CharField(label=(u'Pasword'), widget=forms.PasswordInput(render_value=False)) 

希望它可以帮助你。

+0

我正在尝试这个,谢谢你,在几分钟内我告诉你 –

相关问题