1

假设我有一个项目的 urlconf,其中包括myappurlconf:

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

和 amyapp/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 中使用通用视图?

4

1 回答 1

3

您根本不需要使用前缀 - 您可以为每个 url 指定每个视图的完整路径:

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

或者,您可以在单个 urlconf 中有多个 urlpatterns,并将它们连接起来:

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),
)
于 2011-02-04T20:33:34.093 回答