Django:难以理解如何访问模板中的字段值

Django: Difficulty understanding how to access field values in templates

以下代码给出了我不期望的输出。帮助解释我的代码将不胜感激(我是 Django 的新手)。

我创建了这个模型:

class Question(models.Model):
  author = models.ForeignKey('auth.User')
  question = models.TextField()
  created_date = models.DateTimeField(
        default=timezone.now)
def __str__(self):
    return self.question

有对应的观点:

def home(request):
questions = Question.objects.filter(created_date__lte=timezone.now()).order_by('created_date')
return render(request, 'core/home.html', {'questions':questions})

由 HTML 模板调用:

<div id = "centreBlock" >
                {{ questions }}
                {{questions.created_date}}
        </div>
        <div id = "rightBlock">
            <h2> Other questions</h2>
            {% for quest in questions %}
                <h3><a href="">{{ quest.created_date }}</a></h3>
                <p>{{ quest.text|linebreaks }}</p>
            {% endfor %}
        </div>

模板中 Django 代码的第二行 {{ questions.created_date}} 没有提供任何内容(所有其他代码都按我的预期工作)。为什么是这样?我期待看到创建日期的列表。

模板变量 questions 是一个问题查询集。您无法从查询集中访问单个字段,您必须遍历它。

{% for question in questions %}
{{ question.created_date }} 
{% endfor %}

因为questions是一个QuerySet,没有属性created_date。 如果您想显示 QuerySet 中的所有日期,那么您必须明确获取它或循环并显示每个问题 created_date

{% for question in questions %}
    {{ question.created_date }} 
{% endfor %}