我得到一个奇怪的错误:'ListView'必须定义'queryset'或'model'
这是我的ListView:
class ProjectListView(ListView):
template_name = "ProjectList.html"
model = Project
context_object_name = "projects"
我对CreateView有同样的问题。有没有其他信息需要找到解决方案?
如何解决此错误。
答案 0 :(得分:0)
您必须在每个通用get_queryset()
视图中定义ListView
函数。
这就是你告诉django你想要显示什么对象的方法。
Model
不您的项目。必须将其设置为模型类。
比如,您的Poll
文件中有一个名为models.py
的模型。并且您希望使用通用ListView显示数据库中的所有轮询。然后你可以这样写:
model = Poll
这等于此查询:
Poll.objects.all()
如果你想覆盖它并显示对象,例如在上周的发布日期,然后您使用nedeed查询参数定义get_queryset()
:
ProjectListView(generic.ListView):
# ...
def get_queryset(self):
return obj.objects.filter(pub_date__gte=timezone.now() - datetime.timedelta(days=7))
等等。