向Django通用视图传递参数的查询集

1 投票
1 回答
2194 浏览
提问于 2025-04-15 19:06

我想在一个通用视图上做一个查询,方法是这样的:

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

其中category_id会在网址中指定

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

但是我不知道怎么从网址中获取数据,然后把它传递给分类信息...

1 个回答

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)

你还可以根据文档中提到的参数进一步自定义这个通用视图。文档链接(你可能还想确认一下这个分类是否存在,如果不存在就返回404错误)

撰写回答