如何在模板中显示BooleanField名称?

时间:2012-09-10 04:31:53

标签: django django-models django-templates

模型:

completed = models.BooleanField(_('Completed'))

模板:

{% if object.completed %}
    <strong>{{ object.completed }}</strong>
{% endif %}

输出:

<strong>True</strong>

我需要的是什么:

<strong>Completed</strong>

4 个答案:

答案 0 :(得分:9)

另外,请查看yesno模板过滤器。用法:

<strong>{{ object.completed|yesno:"Completed,Uncomplited" }}</strong>

或:

<strong>{{ object.completed|yesno:"Completed," }}</strong>

UPDATE:

另一方面,您可以随时制作自己的模板过滤器。例如,下一个返回指定字段的verbose_name

<强> foo_tags.py:

@register.filter()
def get_field_name(object, field):
    verbose_name = object._meta.get_field(field).verbose_name
    return verbose_name

<强> template.html:

{% if object.completed %}
    <strong>{{ object|get_field_name:'completed' }}</strong>
{% endif %}

答案 1 :(得分:2)

{% if object.completed %}<strong>Completed</strong>{% endif %}

答案 2 :(得分:0)

我认为你不能使用对象实例。如果模板中的模型有modelForm,您可以使用{{form.completed.label}}

答案 3 :(得分:0)

我只想使用:

{% if object.completed %}
    <p><strong>Completed</stromg></p>
{% else %}
    <p><strong>Not Completed</strong></p>
{% endif %}