Django:难以理解如何访问模板中的字段值
下面的代码给了我一个我不期望的输出。帮助解释我的代码将不胜感激(我对Django非常陌生) 我创建了这个模型:Django:难以理解如何访问模板中的字段值,django,django-models,django-templates,Django,Django Models,Django Templates,下面的代码给了我一个我不期望的输出。帮助解释我的代码将不胜感激(我对Django非常陌生) 我创建了这个模型: class Question(models.Model): author = models.ForeignKey('auth.User') question = models.TextField() created_date = models.DateTimeField( default=timezone.now) def __str__(self):
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>
{{问题}
{{问题.创建日期}
其他问题
{%用于问题中的搜索%}
{{quest.text | linebreaks}}
{%endfor%}
模板中Django代码的第二行
{{questions.created_date}}
没有给出任何东西(所有其他代码都如我所期望的那样工作)。为什么会这样?我希望看到创建日期的列表 模板变量questions
是一组问题。您不能从queryset访问单个字段,必须在其中循环
{% for question in questions %}
{{ question.created_date }}
{% endfor %}
因为
questions
是一个查询集,没有属性created\u date
。
如果要显示查询集中的所有日期,则必须显式获取该日期,或循环显示每个问题created\u date
{% for question in questions %}
{{ question.created_date }}
{% endfor %}
好的,谢谢。是否有直接将对象传递给模板的方法,或者我必须使用查询集?是的,有,并且您目前一直在通过在模板上下文中传递
问题来实现这一点。返回呈现(请求,'core/home.html',{'questions':问题,'add_other_object':tuple())
,例如,将在变量添加另一个\u对象
下提供一个元组对象。如何传递dict并在模板中访问它。我试过的代码都不起作用。你可以像上面那样传递它,然后像模板中的普通dict一样访问它。