Как я могу убедиться, что URL работают одинаково во встроенном веб-сервере и Apache - PullRequest
0 голосов
/ 11 февраля 2009

Ситуация такова:
У меня есть Apache с mod_python на Windows XP, и мой проект Django не находится в корне документа.
Местоположение проекта Django определяется тегом. Здесь также определен django.root.
Все URL-адреса работают нормально на встроенном сервере, но, к сожалению, не в Apache. В некоторых URL, особенно те, которые не указывают на администратора, не работают. Часть django.root обрезается.
Как я могу избежать этого?

Одним из решений может быть установка django-проекта в корневой каталог документов Apache. Есть ли другие решения?

1 Ответ

1 голос
/ 14 февраля 2009

Django будет правильно использовать часть django.root, если вы создадите ссылки в файлах шаблонов с тегами {% url%} и вызовом reverse () в своем HTTPResponseRedirects () вызовов.

Его значение хранится в HttpRequest - request.META ['SCRIPT_NAME'], и вы можете использовать его также в шаблонах с:

    {% if user.is_staff %}
    <li>
        <a href="{{ request.META.SCRIPT_NAME }}/admin">Administration</a>
    </li>
    {% endif %}
...