【问题标题】:Django url tag gives wrong valuesDjango url 标签给出了错误的值
【发布时间】:2009-07-17 19:24:02
【问题描述】:

我的 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/”。为什么要这样做?

当我将应用程序移动到新服务器时出现此问题,所以我猜测一定是配置错误,但我什至不知道在哪里查找。

【问题讨论】:

    标签: django


    【解决方案1】:

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

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

    或:

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

    如果你遵循这个约定,生活会轻松很多。

    【讨论】:

      【解决方案2】:

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

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

      如果还是无法使用,可以尝试将其添加到 settings.py 中:

      FORCE_SCRIPT_NAME = '/path_to_django_app/'
      

      【讨论】:

        猜你喜欢
        • 2014-07-17
        • 1970-01-01
        • 2014-05-19
        • 2012-11-08
        • 2012-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多