对于有装饰者login_required(view Y's url
)的视图X我无法重定向到Y,请参考下面的图片
名为ncqs的django应用程序有一个login_view,用于处理用户登录的get和post请求
def login_view(request):
if request.method=="POST":
username = request.POST.get('username')
password = request.POST.get('password')
print "username:",username,"password",password
return login_user(request, username, password)
return render(request, 'ncqs/login.html')
为简单起见,未显示login_user的代码(顺便说一句,它来自另一个stackoverflow答案)
我已经包括
LOGIN_URL = '/ncqs/login'
在我的settings.py文件中
每当我尝试在没有用户登录的情况下访问/ ncqs / start时,我会得到404
通过在urls.py登录后删除尾部斜杠和美元符号,我能够解决此问题
我认为问题在于在网址末尾附加的尾部斜杠... / ncqs / start /导致此问题
我使用的是自定义模板和视图,而不是django auth提供的模板和视图。我也不是在使用django表单,而是使用我自己的自定义表单
请帮帮我
由于
答案 0 :(得分:3)
由于您的登录网址模式有一个斜杠,例如
url('^login/$, login_view, name='login'),
您需要在LOGIN_URL
设置中包含该斜杠。
LOGIN_URL = '/ncqs/login/'
另一种选择是使用网址格式名称,这样可以避免在设置中对网址进行硬编码。
LOGIN_URL = 'login'