如何使用Django模板检查多个值?

时间:2012-01-30 22:24:16

标签: django django-templates

我目前在Django 1.1.2模板中使用此语法:

{% ifnotequal myvalue 'ABC' %}

但是,我现在需要检查“myvalue”以查看它是“ABC”还是“DEF”。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

Django模板支持some simple logic

{% if myvalue == 'ABC' or myvalue == 'DEF' %}

注意:此功能已添加到Django 1.2中(有关详细信息,请参阅注释)

答案 1 :(得分:3)

如果您使用的是django 1.2或更高版本,则可以使用in operator。否则,您可以在django(documentation)中使用自己的模板标记。

在app-foler中创建文件夹和文件templatetags/is_member.py并使用以下内容保存文件

from django import template
register = template.Library()

@register.filter
def is_member_of(element, list):
  return element in list

现在您可以在模板中使用templatetag,如下所示

{% load is_member %}
{% if element is_member_of ["ABC", "DEF"] %}
  show some stuff
{% endif %}

但如果可能的话,请使用Furbeenator的方式。

答案 2 :(得分:1)

我建议在视图中确定此相等性并将其在上下文中传递回模板。在模板中,您将测试变量而不是myvalue来确定要显示的内容。