模板标记Django

模板标记Django,django,django-templates,Django,Django Templates,如何在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></t

如何在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 %}
{%if proposal.status='c'%}
{%elif proposal.status==“elab”}
{%elif proposal.status=='p'}
{%elif proposal.status=='co%}
{%elif proposal.status=='a'%}
{%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]))
来自django导入模板的

从django.utils.html导入标记_safe
register=template.Library()
@register.tag
def status_图标(状态):
图标={
‘c’:‘fa关闭状态取消’,
'elab':'fa圆圈状态elab',
‘p’:‘足球圈状态待定’,
“co”:“fa检查状态结论”,
“a”:“足总明星状态”
}
返回mark_safe('class=“{}')。格式(图标[状态])
但返回错误


我最终会得到这样的结果:

# 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])
#yourapp/templatetags/yourapp_tags.py
从django导入模板
从django.utils.html导入标记_safe
register=template.Library()
@register.simple_标记
def status_图标(状态):
图标={
‘c’:‘fa关闭fa fw状态取消’,
'elab':'fa循环fa fw状态elab',
#等
}
返回安全标记(“”%icons[状态])
用法示例:

{% load yourapp_tags %}
<td>{% status_icon proposal.status %}</td>
{%loadyourapp\u标签%}
{%status\u图标提案.status%}

您显示的代码有什么问题?它有用吗?如果没有,它会产生什么样的错误?我希望通过重构来减少使用模板标记的代码。我个人的观点是,在这种特定情况下,模板标记必须失败,否则它将产生错误的标记。但你是对的,在许多情况下,我们应该实现某种默认图标。您将templatetag代码放置到的文件的完整路径和名称是什么?myapp/templatetags/core_status_tags.py确保您有
myapp/templatetags/u init_uuuuuuuuuuuupy
文件,并且
myapp
处于
设置中。已安装的应用程序
。请参阅