我想在数据库中按id
打印价值,并且不知道在Google中可以找到哪些关键字。
在我的views.py
中,我将transen = TransEn.objects.all()
发送给template
这将打印数据库中的所有数据:
{% for words in transen %}
{{words.words|safe }}
{% endfor %}
但是我想通过id的值来打印像: (因为他们是翻译网站的英文单词) 我不知道如何在模板中写这个,请指导我,非常感谢。
<div><span> TransEn.objects.filter(id='2') </span></div>
<div> TransEn.objects.filter(id='3') </div>
更新
我找到了一个方法:
我可以使用if
标签,但还有其他想法吗?
<div>
{% for words in transen %}
{% if words.id == 2 %}
{{ words.words|safe }}
{% endif %}
{% endfor %}
</div>
<div>
{% for words in transen %}
{% if words.id == 3 %}
{{ words.words|safe }}
{% endif %}
{% endfor %}
</div>
答案 0 :(得分:0)
如果要按索引单独访问QuerySet中的每个项目,则应首先将其强制转换为列表。您应该将views.py
更改为:
transen = list(TransEn.objects.all())
然后在您的模板中,您可以通过索引访问它们,如下所示:
<div><span> {{ transen.1.words }} </span></div>
<div> {{ transen.2.words }} </div>
Django docuemtnation关于将QuerySet强制转换为列表的警告:
但是,请注意,这可能会产生大量内存开销,因为Django会将列表中的每个元素加载到内存中。相反,迭代QuerySet将利用您的数据库加载数据并仅在您需要时实例化对象。