Django url标记给出了错误的值

时间:2009-07-17 19:24:03

标签: django

我的URLconf有:

url(r'^view-item$', 'appname.views.view_item', name='view-item'),

现在,如果我转到http://myhost/path_to_django_app/view-item/,它就可以了。但是,{% url view-item %}会返回'/ view-item /'。为什么要这样做?

当我将应用程序移动到新服务器时出现此问题,因此我猜测必须配置错误的内容,但我甚至不知道在哪里查看。

2 个答案:

答案 0 :(得分:2)

在django中编写URl的常用方法是使用尾随'/':

url(r'^view-item/$', 'appname.views.view_item', name='view-item')

或:

url(r'^view-item/', include('view.urls')),

如果你遵循这个惯例,生活会更容易。

答案 1 :(得分:1)

这可能是由于SCRIPT_NAME变量未正确设置。 url标签将使用此变量组成要返回的最终绝对路径。

您应该检查一个视图中设置的request.META['SCRIPT_NAME']。如果设置不正确,则可能需要查看后端配置。如果您使用mod_python,这通常涉及确保在apache配置中设置了django.root。查看more info的安装文档。

如果仍无法使其正常工作,可以尝试将其添加到settings.py:

FORCE_SCRIPT_NAME = '/path_to_django_app/'