我如何可以登录并重定向到他的“仪表板”,为管理网站登录表单,并重定向到他的“管理面板”如何在Django中创建两个不同的登录表单?
我一直在寻找和阅读,它可以通过创建一个ModelBackend完成并发现这是一个参考,但它并没有让我清楚如何做到这一点。 https://docs.djangoproject.com/en/1.8/topics/auth/customizing/
我如何可以登录并重定向到他的“仪表板”,为管理网站登录表单,并重定向到他的“管理面板”如何在Django中创建两个不同的登录表单?
我一直在寻找和阅读,它可以通过创建一个ModelBackend完成并发现这是一个参考,但它并没有让我清楚如何做到这一点。 https://docs.djangoproject.com/en/1.8/topics/auth/customizing/
据我所知,您需要两个登录视图。在您的应用程序的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-dash
和example.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))
希望它可以帮助你。
我正在尝试这个,谢谢你,在几分钟内我告诉你 –
您可以创建两个视图。第一个将重定向到“Dashboard”,第二个将重定向到“管理控制台”。 –
通过登录表单您是否想要使用Django的默认登录页面,并且在成功登录后,它应该重新指引您进行其他登陆? –
但是,我该怎么做?我正在寻找,只有ModelBackend找到:/而且比你多! –