2010-12-27 1 views
0

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

Вот мой корень 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 в приложениях/опросов/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'), 
) 

Что такое правильный способ сделать это? Благодаря!

ответ

2

То, как Вы в настоящее время она создала ... URL-адреса для опросов будет:

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

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

0

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

+0

Умм ... Я запускаю один экземпляр django в Eclipse ... Я думаю. У меня нет виртуальных хостов или Apache, просто Django в Eclipse. – JPC

0

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

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