gpt4 book ai didi

django - 检查对象是否在模板中的多对多列表中

转载 作者:行者123 更新时间:2023-12-02 01:10:48 26 4
gpt4 key购买 nike

如何检查某个对象/id 是否在列表中?

如果连接对象的 ID 不是“6”,我希望显示一些内容。

尝试过这样的事情:

 {% if user.benefits.all != "6" %}
You do not have a benefit with ID 6.
{% endif %}

最佳答案

最好不要在模板中放入太多逻辑。 View (或模型)- 是一个更好的地方。

例如,在 View 中,您可以通过以下代码检查 user.benefits 是否具有 id=6 的元素:

has_benefit = user.benefits.filter(id=6).count() > 0
context['has_benefit'] = has_benefit

现在在模板中只需使用这个新的上下文变量:

{% if not has_benefit %}
You do not have a benefit with ID 6.
{% endif %}

更新:

如果你还想在模板中做,最好创建一个custom template filter :

from django import template
register = template.Library()

@register.filter(name='has_benefit')
def has_benefit(user, benefit_id):
b_id = int(benefit_id)
return user.benefits.filter(id=b_id).count() > 0

现在在模板中使用 {% load module_name %} 加载您的 templatetags 模块并使用:

{% if not user|has_benefit:"6" %}
You do not have a benefit with ID 6.
{% endif %}

关于django - 检查对象是否在模板中的多对多列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17611123/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com