Django URL-тег дает неверные значения - PullRequest
1 голос
/ 17 июля 2009

Мой 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 ]

2 голосов
/ 18 июля 2009

Обычный способ записать ваш URl в django с помощью завершающего символа '/':

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

или

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

Жизнь будет намного проще, если вы будете следовать этому соглашению.

1 голос
/ 18 июля 2009

Это может быть связано с неправильной настройкой переменной SCRIPT_NAME. Тег url будет использовать эту переменную для составления окончательного абсолютного пути для возврата.

Вы должны проверить, что request.META['SCRIPT_NAME'] установлено в одном из ваших представлений. Если он настроен неправильно, вам может понадобиться проверить конфигурацию бэкэнда. Если вы используете mod_python, для этого обычно нужно убедиться, что django.root установлен в конфигурации apache. Проверьте документы по установке на больше информации .

Если вы все еще не можете заставить его работать, попробуйте добавить это в settings.py:

FORCE_SCRIPT_NAME = '/path_to_django_app/'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...