如何在应用程序的urls.py中设置通用视图?
问题描述:
比方说,我有一个项目的URL配置,其中包括myapp
的URL配置:如何在应用程序的urls.py中设置通用视图?
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中使用通用视图?
答
你并不需要在所有使用前缀 - 你可以指定你的每一个意见每个URL的完整路径:
urlpatterns = patterns('',
(r'^manager$', 'myapp.views.manager_view'),
(r'^items/(?P<page>[0-9]+)$', 'django.views.generic.list_detail.object_list',
items_list),
)
或者,你可以有多个URL模式在一个单一的URL配置,并连接它们:
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),
)
哦,没想过连接2个urlpatterns,傻我^^ – MatToufoutu 2011-02-04 20:40:14