как включить urlpatterns в Django? - PullRequest
2 голосов
/ 10 февраля 2012

В моем проекте у меня есть одно приложение, которое имеет свой собственный urls.py, как это

urlpatterns = patterns('',
(r'^(?P<language>\w+)/$', 'MainSite.views.home_page'),)

(файл выше в моем приложении)

Я пытаюсь включить этот файл в основной (проекта) urls.py как это:

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'', include('myproject.MainSite.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

if settings.DEBUG :
    urlpatterns += patterns('',
        (r'^media/(?P<path>.*)$', 'django.views.static.serve', 
{'document_root': settings.MEDIA_ROOT}),
        )

но после этого я могу вызвать вид MainSite (приложения), но мой админский URL не работает Я пытался

urlpatterns = patterns('',
        (r'^$', include('myproject.MainSite.urls')),
        url(r'^admin/', include(admin.site.urls)),
    )

но после этого это заставляет администратора работать, но мое приложение не будет вызываться, как мне это решить.

1 Ответ

10 голосов
/ 10 февраля 2012

Вы включаете ваши представления на корневом уровне. Так как он предшествует urlpattern для администратора, первый urlpattern перехватывает все , поэтому ничего не передается в представления администратора.

Самое простое решение - просто поменять порядок:

urlpatterns = patterns('',
    url(r'^admin/', include(admin.site.urls)),
    (r'', include('myproject.MainSite.urls')),
)

Тогда ваши просмотры будут ловить только то, чего не видит администратор.

...