我知道我们通常会反转(someview)以避免在视图中使用硬编码的网址。
但在我的情况下:
@user_passes_test(is_logged_owner, login_url=reverse(signin_owner))
def view_1(request):
# stuff...
def signin_owner(request):
# stuff...
这不起作用,这会在任何URL处引发一个ImproperlyConfigured错误(消息是:包含的urlconf hellodjango.urls中没有任何模式)。
我不知道发生了什么,因为urls.py中的视图似乎已经很好地定义了(我在6个月内从未犯过这样的错误)。
root urls.py:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('myapp.urls')),
)
myapp urls.py(部分内容):
url(r'^signin_owner$', views.signin_owner, name='signin_owner'),
谢谢!
答案 0 :(得分:3)
在加载URLconf之前,您正在使用URL反转,因为reverse
无效。解决方案是使用reverse_lazy代替。
现在您的观点将是这样的:
@user_passes_test(is_logged_owner, login_url=reverse_lazy('signin_owner',))
def view_1(request):
# stuff...