如何在django中添加一个内置的长模板标签?

时间:2017-10-24 14:42:20

标签: django django-templates

你怎么做这样的长模板标签:

<td>{{ membership.is_project_manager|yesno:"<span class='glyphicon glyphicon-ok'></span>,<span class='glyphicon glyphicon-remove'></span>"|safe  }}</td>

1 个答案:

答案 0 :(得分:3)

您正在复制yesno标记中的大量代码。您真正需要的只是glyphicon-okglyphicon-remove。其余部分一直显示。

您可以将其更改为:

<td><span class='glyphicon {{ membership.is_project_manager|yesno:"glyphicon-ok,glyphicon-remove" }}'></span></td>

如果需要,您还可以将glyphicon-部分移出yesno标记。

我个人可能会发现一个简单的if标签更具可读性,但这是个人偏好。

<td><span class='glyphicon {% if membership.is_project_manager %}glyphicon-ok{% else %}glyphicon-remove{% endif %}'></span></td>

如果您发现自己编写了很多代码,那么您可以写一个返回glyphicon-okglyphicon-remove的{​​{3}}。这可以将模板简化为:

<td><span class='glyphicon {% glyphicon_class membership %}'></span></td>