Как настроить общие представления в urls.py приложения? - PullRequest
1 голос
/ 04 февраля 2011

Допустим, у меня есть urlconf проекта, который включает myapp urlconf:

urlpatterns = patterns('',
    (r'^myapp', include(myapp.urls)),
)

и myapp/urls.py с некоторыми определенными маршрутами:

urlpatterns = patterns('myapp.views',
    (r'^manager$', 'manager_view'),
)

Я хочу использовать общие представления в myapp (т. Е. Для отображения списка элементов), но если я определю его в myapp/urls.py следующим образом:

items_list = {
    'queryset': Item.objects.all(),
}

urlpatterns = patterns('myapp.views',
    (r'^manager$', 'manager_view'),
    (r'^items/(?P<page>[0-9]+)$', 'django.views.generic.list_detail.object_list',
        items_list),
)

Это не сработает из-за префикса myapp.views. Конечно, я мог бы поместить шаблоны общих представлений в urls.py проекта, но тогда иметь отдельный urls.py для приложения больше не имело бы смысла.

Так, как я могу использовать общие представления в urlconf приложения?

1 Ответ

3 голосов
/ 04 февраля 2011

Вам вообще не нужно использовать префикс - вы можете указать полный путь к каждому из ваших просмотров для каждого URL:

urlpatterns = patterns('',
    (r'^manager$', 'myapp.views.manager_view'),
    (r'^items/(?P<page>[0-9]+)$', 'django.views.generic.list_detail.object_list',
        items_list),
)

В качестве альтернативы, вы можете иметь несколько urlpatterns в одном urlconf и объединять их:

urlpatterns = patterns('myapp.views',
    (r'^manager$', 'manager_view'),
)

urlpatterns += patterns('django.views.generic',
    (r'^items/(?P<page>[0-9]+)$', 'list_detail.object_list',
        items_list),
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...