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

Django: How to apply conditional attribute to HTML element in template?

我的 Django jinja 模板中有一个复选框。如果对象布尔字段为 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 %}

可以,但是看起来不太好,有没有其他好的方法来处理这个问题?

yesno 模板过滤器将完成工作:

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

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

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