以下代码给了我意外的输出。帮助解释我的代码将不胜感激(我是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>
{{ questions.created_date}}
模板中Django代码的第二行没有给出任何内容(所有其他代码都按我的预期工作)。为什么是这样?我期待看到创建日期的列表。
因为questions
是QuerySet并且没有属性created_date
。如果要显示QuerySet中的所有日期,则必须显式获取它或遍历并显示每个问题created_date
{% for question in questions %}
{{ question.created_date }}
{% endfor %}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句