Python 在这种情况下,如何避免Django视图中的硬编码url?
我知道我们通常会反转(someview)以避免视图中的硬编码URL 但就我而言:Python 在这种情况下,如何避免Django视图中的硬编码url?,python,django,Python,Django,我知道我们通常会反转(someview)以避免视图中的硬编码URL 但就我而言: @user_passes_test(is_logged_owner, login_url=reverse(signin_owner)) def view_1(request): # stuff... def signin_owner(request): # stuff... 这不起作用,这会在任何URL上引发配置不当的错误(消息是:包含的urlconf hellodjango.URL中没有任何模
@user_passes_test(is_logged_owner, login_url=reverse(signin_owner))
def view_1(request):
# stuff...
def signin_owner(request):
# stuff...
这不起作用,这会在任何URL上引发配置不当的错误(消息是:包含的urlconf hellodjango.URL中没有任何模式)
我不知道发生了什么,因为视图似乎在url.py中定义得很好(而且我在6个月内从未犯过这样的错误)
根URL.py:
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('myapp.urls')),
)
myapp URL.py(其中的一部分):
谢谢 在加载URLconf之前,您正在使用URL反转,因此
reverse
无法工作。解决这个问题的办法是使用
现在,您的视图将如下所示:
@user_passes_test(is_logged_owner, login_url=reverse_lazy('signin_owner',))
def view_1(request):
# stuff...
你的项目名是hellodjango?哦,我想你复制了django项目的例子,但忘了更改名称。你能粘贴你的
url.py吗?你的视图在哪里定义?2
可能是这样,但我有疑问,因为我在这个项目上工作了6个月,以前从未犯过这样的错误。我更新了代码。谢谢。在查看1之前,您是否尝试定义登录所有者?是的,我也在考虑这个问题。但同样的结果:(太棒了!!!就是这样,谢谢。我不知道在装饰器内部的URL中可能需要它。
@user_passes_test(is_logged_owner, login_url=reverse_lazy('signin_owner',))
def view_1(request):
# stuff...