我检查了多个帖子和解决方案,但无法实现。
我在视图内返回了一个Python对象。我现在想使用该字典中的数据来使用Django模板标签进行渲染。
尽管如此,什么也没出现……
查看:
def render_Terminal(request, template="Terminal.html"):
account_information = AccountInformation.objects.all()
account_information_dict = {
'account_information': account_information
}
return render(request, template, (account_information_dict))
HTML
<div id="oneTwo" class="columnsOne">
{{ account_information.pk }}
</div>
仅在标记内使用account_information
,我得到:
<QuerySet [<AccountInformation: AccountInformation object (30e61aec-0f6e-4fa0-8c1b-eb07f9347c1f)>]>
问题出在哪里?
答案 0 :(得分:4)
AccountInformation.objects.all()
是带有QuerySet
过滤器的all()
。 QuerySet是可迭代的,并且在您第一次对其进行迭代时会执行其数据库查询。您可以使用以下方法显示列表中所有项目的ID:
{% for item in account_information %}
<div id="some-id-{{ forloop.counter }}" class="some-class">
{{ item.pk }}
</div>
{% endfor %}
答案 1 :(得分:-1)
这样做
def render_Terminal(request, template="Terminal.html"):
account_information = AccountInformation.objects.all()
account_information_dict = {
'account_information': [a for a in account_information]
}
return render(request, template, (account_information_dict))
和
<div id="oneTwo" class="columnsOne">
{{ account_information.0.pk }}
</div>
但是您只能恢复第一件物品
一个更好的解决方案可能是
account_information = AccountInformation.objects.get(pk=`you id`)
return render(request, template, (account_information_dict))
然后
<div id="oneTwo" class="columnsOne">
{{ account_information.pk }}
</div>
Using just account_information within the tag, I get:
如果您使用整数值,则必须在html代码内将项目置于“ for”中
{% for a in account_information %}
<div>
{{ a.pk }}
</div>
{% endfor %}