Django 模板标签接受布尔值并返回 html

sup*_*er9 1 django django-templates

我有一段 HTML,将在多个地方使用。

            {% if event.finished_payments %}
            <span class="label label-success">Complete</span>
            {% else %}
            <span class="label label-important">Incomplete</span>
            {% endif %}
Run Code Online (Sandbox Code Playgroud)

我想编写一个模板标签,它接受一个 bool 并返回<span class="label label-success">Complete</span>or<span class="label label-important">Incomplete</span>取决于参数是否TrueFalse我认为看起来像这样:

{% tf_label event.finished_ payment %}

或者,是否有另一种方法可以使用include模板标签并传入参数来实现此目的?

DrT*_*rsa 5

{{ event.finished_payments|yesno:"<span class='label label-success'>Complete</span>,<span class='label label-important'>Incomplete</span>" }}
Run Code Online (Sandbox Code Playgroud)

但它认为,使用{% if %}标签是这里最好的想法,它更具可读性。无论如何,HTML 应该存在于模板中,而不是 Python 代码中。