【发布时间】:2026-01-10 19:30:01
【问题描述】:
所以基本上我有这个从 ListView 继承的通用视图,我想要它做的是接受某种参数(如字符串或“选项”),然后根据这些参数过滤我的模型。
我已经找了两天了,似乎找不到太多关于这个的信息。我已经尝试过覆盖 get_queryset 函数,也只是尝试像这样直接过滤:
model = product.objects.filter(pk__in=[1,2,3,4,5])
但是大多数时候它只是给我这个错误:
/python3.5/site-packages/django/views/generic/list.py", line 38, in get_queryset
queryset = self.model._default_manager.all()
AttributeError: 'QuerySet' object has no attribute '_default_manager'
我真的不需要“解决方案”,如果有人能指出我可以深入阅读的地方,我会很好,因为我只能找到基本的描述。
谢谢
【问题讨论】:
-
你能添加更多关于你的模型的细节吗?
-
什么是产品?那是模型名称还是变量名称。似乎产品是变量名(分配给查询集),在这种情况下它应该是 product.filter(pk__in=[1, 2, 3, 4, 5])
-
product 是模型的名称,"from .models import product"
-
你试过
model = product然后覆盖get_queryset()方法吗?显示上述错误是因为您已将model变量定义为queryset。 -
谢谢!大声笑这比我想象的要容易得多,为什么我没有尝试将过滤器作为返回是因为我认为如果我覆盖了函数我必须编写整个函数+所以我注定要找到函数的原始定义但不能.
标签: django django-models django-generic-views