【发布时间】:2019-02-27 14:00:16
【问题描述】:
我需要知道如何在 Django 模板中使用contains。
我想做这样的事情:
在视图中:
my_query = MyClass.objects.filter(key=value).my_var
并且在这样的模板中:
{% if my_query contains 'X' %}
<p>My var contains an X</p>
{% endif %}
{% if my_query contains 'Y' %}
<p>My var contains a Y</p>
{% endif %}
我已经知道的其他方法是在视图中进行验证:
my_query_X = MyClass.objects.filter(my_var__contains='X').exists()
my_query_Y = MyClass.objects.filter(my_var__contains='Y').exists()
然后在模板中:
{% if my_query_x == True %}
<p>My var contains an X</p>
{% endif %}
{% if my_query_y == True %}
<p>My var contains a Y</p>
{% endif %}
但我不想使用最后一个选项,因为它需要执行更多查询。
【问题讨论】:
-
在 Python 中使用 .exists() 会更好,因为这样 数据库 可以进行检查,而不是构建整个列表,将其发送到模板并检查那里。