2010-02-10 74 views
1

我想作一個查詢集上通用視圖這樣:傳遞參數給Django的查詢集的通用視圖

category_info = { 
     'queryset' : ModelObject.objects.filter(category=category_id) 
} 

其中category_id將在URL上說

(r'^category/(?P<category_id>\d+)$', 'object_list', category_info) 

但我不知道如何從URL中獲取數據並將其傳遞給類別信息...

回答

3

您必須定義自己的視圖並返回從內部通用視圖:

urls.py:

(r'^category/(?P<category_id>\d+)$', 'myapp.views.category_list') 

的myapp/views.py

from django.views.generic.list_detail import object_list 
def category_list(request, category_id): 
    queryset = ModelObject.objects.filter(category=category_id) 
    return object_list(request, queryset=queryset) 

您還可以定製通用視圖,使用上述參數in the documentation。 (你也可能想驗證類別是否存在,當它不存在時拋出404)

+0

我還需要添加'request'參數,這樣: 'return object_list(request,queryset = queryset) – Khelben

+0

哎呀,已更新。 –