您好?我尝试在django登录后将特定用户重定向到自定义页面。管理员将被引导至他们通常的管理界面,而此特定用户将转到他们自己的自定义页面。 我已经编写了这段代码并将其放在我的观点中
def custLogin(request):
if request.user.username == '***':
return HttpResponseRedirect('http://********************.html')
else:
return login(request,template_name='login.html')
我已将urls.py中的accounts / login url指向custLogin,如下所示
(r'^accounts/login/', custLogin),
但我一直收到错误
Caught NoReverseMatch while rendering: Reverse for 'django.contrib.auth.views.login' with arguments '()' and keyword arguments '{}' not found.
请指点什么?
答案 0 :(得分:0)
也许,您应该使用redirect快捷方式,它会返回HttpResponseRedirect
,以便在custLogin
查看处理后将您的用户指向不同的位置。
from django.shortcuts import redirect
def custLogin(request):
if request.user.is_staff:
return redirect('/some/admin/url')
else:
return redirect('/some/regular/user/url')
正如文档所述,您可以通过多种方式使用redirect()
函数:通过传递视图名称,对象或URL。有关详细信息,请参阅documentation
请注意,我使用is_staff
用户字段来确定:用户是否为管理员。
答案 1 :(得分:0)
{% load from future url %}
在模板开始时,这在使用时很有用:
{% url 'name_of_my_url_inurl.py' %}
答案 2 :(得分:0)