如何在Django模板中使用模板标签?
{% if proposal.status == 'c' %}
<td><i class="fa fa-close fa-fw status-cancelado"></i></td>
{% elif proposal.status == 'elab' %}
<td><i class="fa fa-circle fa-fw status-elab"></i></td>
{% elif proposal.status == 'p' %}
<td><i class="fa fa-circle fa-fw status-pendente"></i></td>
{% elif proposal.status == 'co' %}
<td><i class="fa fa-check fa-fw status-concluido"></i></td>
{% elif proposal.status == 'a' %}
<td><i class="fa fa-star fa-fw status-aprovado"></i></td>
{% endif %}
我使用下面的代码,但返回错误。
from django import template
from django.utils.html import mark_safe
register = template.Library()
@register.tag
def status_icon(status):
icons = {
'c': 'fa-close status-cancelado',
'elab': 'fa-circle status-elab',
'p': 'fa-circle status-pendente',
'co': 'fa-check status-concluido',
'a': 'fa-star status-aprovado'
}
return mark_safe('<i> class="{}"</i>'.format(icons[status]))
但是返回错误。 .................................................. ................................................. < / p>
答案 0 :(得分:2)
我最终会得到这样的结果:
# yourapp/templatetags/yourapp_tags.py
from django import template
from django.utils.html import mark_safe
register = template.Library()
@register.simple_tag
def status_icon(status):
icons = {
'c': 'fa fa-close fa-fw status-cancelado',
'elab': 'fa fa-circle fa-fw status-elab',
# etc
}
return mark_safe('<i class="%s"></i>' % icons[status])
使用示例:
{% load yourapp_tags %}
<td>{% status_icon proposal.status %}</td>