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 %}
以下代码给出了我不期望的输出。帮助解释我的代码将不胜感激(我是 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 %}