将参数传递给通用视图Django queryset

时间:2010-02-10 12:58:09

标签: python django

我想以这种方式在通用视图上创建一个查询集:

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

其中category_id将在网址上说明

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

但我不知道如何从URL获取数据并将其传递给类别信息...

1 个答案:

答案 0 :(得分: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)