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

Sef*_*efa 2 python django django-templates python-2.7

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

我的html元素看起来像:

<div class="checkbox"><label>
<input type="checkbox" name="sendEmail" checked="{{ customer.SendSms }}">
Send sms?
</label></div>
Run Code Online (Sandbox Code Playgroud)

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

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

我知道类似的东西

{% if customer.SendSms %}
//checked html element here
{% else %}
//unchecked element here
{% endif %}
Run Code Online (Sandbox Code Playgroud)

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

rne*_*ius 15

为什么不在有条件的情况下包装属性?

<input type="checkbox" name="sendEmail" {% if customer.SendSms %}checked{% endif %}>
Run Code Online (Sandbox Code Playgroud)


cat*_*ran 7

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

<input type="checkbox" name="sendSms" {{ customer.SendSms|yesno:"checked" }}>
Run Code Online (Sandbox Code Playgroud)