【发布时间】:2014-10-09 16:54:53
【问题描述】:
在数据库中,我有一组问题。我想将可折叠项目中的每个问题显示为列表。之前我使用过 TemplateView:
class questionmanager(TemplateView):
template_name = 'questionmanager.html'
questions = Question.objects.all()
def get_context_data(self, **kwargs):
context = ({
'questions': self.questions,
})
return context
然后,我读到使用 ListView 表示对象列表是更好的做法。然后我把我的班级改成这样:
class QuestionListView(ListView):
model = Question
def get_context_data(self, **kwargs):
context = super(QuestionListView, self).get_context_data(**kwargs)
return context
在旧模板中,我使用了这个 for 循环:
{% for question in questions %}
我认为当我使用 ListView 而不是 TemplateView 时,我不需要使用 for 循环;但我无法列出没有 for 循环的项目。我找到了一个示例 here,在我看来,唯一的区别是在 for 循环中我们使用 object_list ({% for question in **object_list** %}) 而不是使用我们在上下文中传递的参数。
我真的没有看到使用 TemplateView 和 ListView 之间有太大的区别 - 在花了一个小时之后。如果有人解释为什么使用 ListView 而不是 TemplateView 是一种更好的做法(在这种情况下),我将不胜感激。
提前致谢。
【问题讨论】:
标签: django django-views