如何使用 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
这在我的模板中显示为正确或错误:
{% is_designer user.id %}
然而,这些在if表达式结尾处给出了一个错误“未使用'user.id'。”:
{%if is_designer user.id == True%}是{%endif%}
{%if is_designer user.id%}是{%endif%}
答案 0 :(得分:10)
如果您将其改为assignment tag,则可以执行类似
的操作{% 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
中的弃用通知答案 1 :(得分:1)
这个怎么样:
{% is_designer user.id as is_user_designer %}
{{ is_user_designer|yesno:"Yes," }}