如何将条件属性应用于模板中的HTML元素?

时间:2015-02-21 10:57:36

标签: python django python-2.7 django-templates

我的模板中有一个复选框。如果对象布尔字段为True,我希望检查该复选框。

我的html元素如下:

<div class="checkbox"><label>
<input type="checkbox" name="sendEmail" checked="{{ customer.SendSms }}">
Send sms?
</label></div>

问题是,当属性checked="False"时仍然会选中复选框,只有当checked属性不存在时,它才会被取消选中。

所以我需要的是,只有当customer.SendSms为真时才将checked属性放入html元素。

我知道像

这样的东西
{% if customer.SendSms %}
//checked html element here
{% else %}
//unchecked element here
{% endif %}

可能,但这看起来不那么漂亮,有没有其他好方法来处理这个?

2 个答案:

答案 0 :(得分:15)

为什么不将属性包装在条件中?

<input type="checkbox" name="sendEmail" {% if customer.SendSms %}checked{% endif %}>

答案 1 :(得分:4)

yesno模板过滤器可以完成这项工作:

<input type="checkbox" name="sendSms" {{ customer.SendSms|yesno:"checked" }}>