Django - Как использовать URLconfs с папкой приложений? - PullRequest
0 голосов
/ 27 декабря 2010

Я следую учебному пособию на веб-сайте Django, но пытаюсь его расширить. Мне нравится организационная схема помещения всех ваших приложений в папку «приложений». Я пытаюсь выяснить, как правильно включить urls.py, чтобы связать все вместе.

Вот мой корень 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)),
)

Вот мой urls.py в apps / polls / 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'),
)

Какой правильный способ сделать это? Спасибо!

Ответы [ 3 ]

2 голосов
/ 27 декабря 2010

То, как вы сейчас его настроили ... URL-адреса для опросов будут:

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

Это, вероятно, не то, что вы хотите.Функция include в urlpatterns в корневом файле urls.py указывает "polls/" в качестве префикса для всех urlpatterns в приложении опросов.Поэтому в файле polls / urls.py не следует указывать префикс "polls/" снова, так как это приведет к дублированию префиксов.

0 голосов
/ 27 декабря 2010

Я получил его на работу, сделав это:

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'),
)

Я полагаю, что часть опроса рассматривается в корне urlconf

0 голосов
/ 27 декабря 2010

Как вы управляете вашими экземплярами Django? Если в Apache настроено несколько vhosts, то каждый экземпляр Django в / apps имеет собственный urls.py.

...