Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在这种情况下,如何避免Django视图中的硬编码url?_Python_Django - Fatal编程技术网

Python 在这种情况下,如何避免Django视图中的硬编码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中没有任何模

我知道我们通常会反转(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中没有任何模式)

我不知道发生了什么,因为视图似乎在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...