Django - Comment utiliser URLconfs avec un dossier apps?
Question
Je suis suivant le tutoriel sur le site Django, mais je suis en train de développer sur elle. Je aime le schéma d'organisation de mettre toutes vos applications dans un dossier « apps ». J'essaie de trouver la bonne façon d'inclure urls.py afin d'obtenir tout pour relier ensemble.
Voici mon urls.py racine:
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)),
)
Voici mon urls.py à apps / sondages / 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'),
)
Quelle est la bonne façon de le faire? Merci!
La solution
La façon dont vous avez actuellement il mis en place ... les URL des sondages serait:
http://your.url.here/polls/polls/235/results/
Ceci est probablement pas ce que vous voulez. La fonction include
dans le urlpatterns
dans le fichier urls.py racine spécifie "polls/"
comme préfixe à tous urlpatterns
dans l'application des sondages. Par conséquent, dans les sondages / fichier urls.py, vous ne devez pas spécifier à nouveau le préfixe "polls/"
car il entraînera des préfixes en double.
Autres conseils
Comment vous exécutez vos instances Django? Si vous avez plusieurs serveurs virtuels configurés dans Apache puis chaque instance Django dans / apps a sa propre urls.py.
Je l'ai au travail en faisant ceci:
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'),
)
Je suppose que la partie des sondages est pris en charge dans la racine URLconf