Django - login_required没有重定向

时间:2014-11-02 10:08:49

标签: python django django-forms

我试图限制视图,除非登录完成。正在关注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 /”

6 个答案:

答案 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上运行它并正确运行

相关问题