我试图限制视图,除非登录完成。正在关注tuts + plus django unchained tutorial
然而,login_required装饰器不知何故没有完成这项工作。我做错了什么?
views.py上的那部分(已导入login_required)
@login_required
def story(request):
if request.method == "POST":
form = StoryForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
form = StoryForm()
return render(request, 'stories/story.html', {'form': form})
urls.py没有带来任何变化。所以我希望找不到/登录的错误。但是,某种程度上并没有发生。
settings.py有LOGIN_URL =“/ login /”
答案 0 :(得分:1)
我不确定为什么会这样。但由于某些原因,Chrome中的默认故事视图在不重定向到/ login的情况下打开,而在Firefox中工作正常。我尝试清除缓存的图像& Chrome中的文件,但没有帮助。
现在我只使用Firefox来完成它。
答案 1 :(得分:0)
在urls.py
中添加条目,如下所示:
(r'^login/$', 'login_view'),
或者您可以使用LOGIN_URL = "/login/"
删除settings.py
并使用:
@login_required(login_url='/login/')
在这两种情况下,您都必须向urls.py添加条目
答案 2 :(得分:0)
确保您的chrome浏览器清除了所有浏览数据,请时刻注意选择时间范围,然后您将解决此问题。我还遇到了这个问题,在使用Firefox正常运行后,我明白了。
答案 3 :(得分:0)
通过 chrome DevTool -> Application -> Storage -> Cookies 可以解决这个问题。
答案 4 :(得分:0)
或者,您只需在 Chrome 浏览器的 Incognito Window
中打开您的应用即可修复此错误。
答案 5 :(得分:-1)
我有同样的问题。我清除了Chrome chache,但它没有用。现在我在Firefox上运行它并正确运行