5

如何从Django 模板标签中创建条件语句?

from django import template
from django.contrib.auth.models import User, Group

register = template.Library()

@register.simple_tag
def is_designer(user_id):
    try:
        group = Group.objects.get(
            name = "Designer",
            user = user_id
        )
        return True
    except Group.DoesNotExist:
        return False

这在我的模板中显示为 True 或 False,这是正确的:

{% is_designer user.id %}

然而,这些给了我一个错误“如果表达式末尾未使用'user.id'。 ”:

{% if is_designer user.id == True %} 是 {% endif %}

{% if is_designer user.id %} 是 {% endif %}

4

2 回答 2

12

如果你把它变成了一个分配标签,你可以做类似的事情

{% is_designer user.id as is_user_designer %}

{% if is_user_designer == True %} Yes {% endif %}

{% if is_user_designer %} Yes {% endif %}

注意:从 Django 1.9 开始,赋值标签已被弃用,简单标签现在可以存储值。请参阅 1.9 文档中的弃用通知https://docs.djangoproject.com/en/1.9/howto/custom-template-tags/#assignment-tags

于 2013-04-29T18:42:03.867 回答
1

这个怎么样:

{% is_designer user.id as is_user_designer %}
{{ is_user_designer|yesno:"Yes," }}
于 2016-06-26T11:52:42.113 回答