【问题标题】:Django: how to call "contains" function in a template?Django:如何在模板中调用“包含”函数?
【发布时间】: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() 会更好,因为这样 数据库 可以进行检查,而不是构建整个列表,将其发送到模板并检查那里。

标签: python django contains


【解决方案1】:

你可以使用in:

{% if 'X' in my_query %}
    <p>My var contains an X</p>
{% endif %}
{% if 'Y' in my_query %}
    <p>My var contains a Y</p>
{% endif %}

【讨论】:

    猜你喜欢
    • 2015-07-30
    • 1970-01-01
    • 2023-03-25
    • 2014-10-12
    • 2013-06-15
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 2011-01-03
    相关资源
    最近更新 更多