2013-04-29 111 views
4

如何使条件语句脱离Django模板标签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 %} 

然而,这些给我一个错误“未使用‘user.id’在if语句的结束”:

{%如果is_designer user.id ==真%}是{%ENDIF%}

{%如果is_desig NER user.id%}是{%ENDIF%}

回答

9

如果您作出为assignment tag,你可以不喜欢

{% is_designer user.id as is_user_designer %} 

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

{% if is_user_designer %} Yes {% endif %} 
+3

谢谢这有效,但我用过滤器代替:'{%if user | is_maker%} YES {%endif%}' – JREAM 2013-04-29 19:08:36

1

这个怎么样:

{% is_designer user.id as is_user_designer %} 
{{ is_user_designer|yesno:"Yes," }}