现在我在views.py
中有以下代码:
class IndexView(generic.ListView):
model = Question
template_name = "qa_forum/index.html"
context_object_name = 'question_list'
paginate_by = 25
它的工作很好,但它检索数据库中的所有问题(包括封闭和“未来”问题)。
在models.py
我有以下经理:
class ActiveManager(models.Manager):
def get_query_set(self):
return super(ActiveManager, self).get_query_set(). \
.filter(pub_date__lte=timezone.now(), is_active=True
).order_by('-pub_date')
这有助于从db获取活动问题。
但我不知道如何正确使用 generic ListView
。
非常感谢任何建议。
答案 0 :(得分:3)
您可以将queryset on the ListView
class设置为:
modelManager
class IndexView(generic.ListView):
model = Question
template_name = "qa_forum/index.html"
context_object_name = 'question_list'
paginate_by = 25
queryset = Question.objects.filter(pub_date__lte=timezone.now(),
is_active=True).order_by('-pub_date')
如果您想使用modelManager
方法,可以将queryset设置为
class IndexView(generic.ListView):
#if you have set manger as active_objects in Question model
queryset = Question.active_objects.filter()