ListView 下使用 get_queryset() 方法,为什么模型类的所有方法都不可用了?
来源:8-8 ListView开发所有问题页
幕布斯3520075
2021-11-21
老师你好:
我在 ListView 下使用 get_queryset() 方法,为什么模型类的所有方法都不可用了?
模型类的字段全部都是可以调用的。
class QuestionListView(ListView):
""" Question list page view """
model = QuestionModel
paginate_by = 100
context_object_name = 'question_list'
template_name = 'question/list.html'
def get_queryset(self):
super_queryset = super(QuestionListView, self).get_queryset()
queryset = super_queryset.filter(status=QuestionModel.OPEN).values('title', 'viewed', 'slug', 'updated_at') \
.order_by('-updated_at')
return queryset
写回答
2回答
-
幕布斯3520075
提问者
2021-11-21
类似:
get_absolute_url
total_votes
get_answers
count_answers
模型类的方法都调用不出来,字段可以正常显示。
122021-11-22 -
Jack
2021-11-23
你想对问题这样过滤
.filter(status=QuestionModel.OPEN).values('title', 'viewed', 'slug', 'updated_at') \ .order_by('-updated_at')
可以在模型类文件的QuestionQuerySets中写一个方法
然后重写querysets的时候这样子调用
你的写法中“super_queryset = super(QuestionListView, self).get_queryset()”这里是继承了原始的get_queryset()函数的功能,而不是重写。
042021-11-26
相似问题