Projektname automatisch in url eingefügt, wenn Djangos Template-URL-Tag
-
25-09-2019 - |
Frage
Ich beantrage den 'url' Template-Tag für alle Links in meinem aktuellen Django-Projekt.
Ich habe meine Urls Namen wie so ...
url(r'^login/$', 'login', name='site_login'),
Dies ermöglicht es mir, den Zugang / login an der Wurzel meiner Website. Ich habe meinen Template-Tag wie so definiert ...
<a href="{% url site_login %}">
Es funktioniert gut, außer , dass Django löst automatisch diese URL als / myprojectname / login , nicht / login . Beide URLs zugänglich sind. Warum? Gibt es eine Möglichkeit, den Projektnamen zu entfernen? Dies geschieht für alle URL-Tags, nicht nur diese.
Lösung
Offenbar war es ein Problem mit meiner apache2-Konfiguration. Ich im Grunde die Richtlinien der django Website kopiert, mit einer kleinen Änderung:
http://docs.djangoproject.com/ en / dev / Howto / deployment / Mod_python / # basic-Konfiguration
ich geändert, so mein Django-Projekt würde auf meiner Website Stammverzeichnis serviert werden.
Ich hatte entfernen '/ mysite' aus der django.root Option. Meine letzte Ausgabe wie folgt aussieht, ohne Wert nach django.root:
<Location "/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonOption django.root
PythonDebug On
</Location>
Für das Protokoll, ich bin mit:
Django 1.0 Apache 2.2 mod_python 3.3.1 (glaube ich ... :)) Ubuntu Hardy 8.04.4
Kopiert von hier: http://groups.google.com/group / django-users / msg / 5e79ed1e694a3776
Andere Tipps
In Ihrer URL conf django Begegnungen dieses URL-Muster früher als die andere.
Da url Auflösung von einem getan ist, sondern nur die Haupt-Login bewegen, bevor die sind innerhalb der Haupt urls.py