2011-02-04 91 views
1

比方说,我有一个项目的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中使用通用视图?

回答

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), 
) 

或者,你可以有多个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), 
) 
+0

哦,没想过连接2个urlpatterns,傻我^^ – MatToufoutu 2011-02-04 20:40:14

相关问题