Frage

Ich folge dem Tutorial auf der Django -Website, aber ich versuche es zu erweitern. Ich mag das Organisationsschema, alle Ihre Apps in einen "Apps" -Fordner zu bringen. Ich versuche herauszufinden, wie richtig URLS.Py einbezogen wird, um alles zusammenzubringen.

Hier ist meine root urls.py:

from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^polls/', include('apps.polls.urls')),
    (r'^admin/', include(admin.site.urls)),
)

Hier sind meine urls.py bei Apps/Umfragen/urls.py:

from django.conf.urls.defaults import *

urlpatterns=patterns('polls.views',
    (r'^polls/$', 'index'),
    (r'^polls/(?P<poll_id>\d+)/$', 'detail'),
    (r'^polls/(?P<poll_id>\d+)/results/$', 'results'),
    (r'^polls/(?P<poll_id>\d+)/vote/$', 'vote'),
)

Was ist der richtige Weg, dies zu tun? Vielen Dank!

War es hilfreich?

Lösung

Die Art und Weise, wie Sie es derzeit eingerichtet haben ... Die URLs für Umfragen wären:

http://your.url.here/polls/polls/235/results/

Dies ist wahrscheinlich nicht das, was Sie wollen. Das include Funktion in der urlpatterns In der Root -URLS.Py -Datei gibt an "polls/" als Präfix für alle urlpatterns In der Umfrages -App. Daher sollten Sie in der Datei der Umfragen/URLs.py die nicht angeben "polls/" Präfix erneut, da es doppelte Präfixe verursacht.

Andere Tipps

Wie leiten Sie Ihre Django -Instanzen aus? Wenn Sie mehrere Vhosts in Apache konfigurieren haben, hat jede Django -Instanz /Apps eigene urls.py.

Ich habe es dazu gebracht, dies zu tun:

urlpatterns=patterns('polls.views',
    (r'^$', 'index'),
    (r'^(?P<poll_id>\d+)/$', 'detail'),
    (r'^(?P<poll_id>\d+)/results/$', 'results'),
    (r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)

Ich denke

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top