具有非常量字符串的Django @login_required装饰器抛出异常

时间:2012-05-07 22:22:38

标签: django django-views django-urls

我使用@login_required(login_url=login_url)

装饰受保护的网页

当我在views.py文件的顶部,设置login_url=reverse("member_login")时会抛出异常:

Tried tag_index in module dgn.views. Error was: 'module' object has no attribute 'tag_index'

tag_index是URL调度程序列表中的最后一项。如果我对此进行评论,那么它只会抛出提及之前的异常。

奇怪的是,当我设置login_url="constant/string/to/path"时,它就可以了。显然,login_url=reverse('member_login')正在弄乱它。我在views.py文件中的函数内的许多其他地方使用reverse,并确保在URL调度列表中命名每个条目。

对于可能出现的问题的任何帮助将不胜感激。提前谢谢!

2 个答案:

答案 0 :(得分:2)

此时尚未加载URLConf。 如果您有django 1.4

,请使用reverse_lazy

答案 1 :(得分:1)

您是否在urls.py文件中从views.py导入任何内容?如果是这样,您可能会遇到循环导入问题,并且您可能需要重新调整urls.py,因此不需要导入。