Sefa
Sefa

Reputation: 8992

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

I have a checkbox in my Django jinja template. I want that checkbox to be checked if object boolean field is True.

My html element looks like:

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

The problem is, checkbox is still checked when attribute checked="False", it's becomes unchecked only when the checked attribute is not there.

So what i need is, put checked attribute into the html element only if customer.SendSms is true.

I know something like

{% if customer.SendSms %}
//checked html element here
{% else %}
//unchecked element here
{% endif %}

possible but this does not look so pretty, is there any other good way to handle this?

Upvotes: 10

Views: 11755

Answers (2)

rnevius
rnevius

Reputation: 27092

Why not wrap the attribute in a conditional?

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

Upvotes: 24

catavaran
catavaran

Reputation: 45555

yesno template filter will do the job:

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

Upvotes: 15

Related Questions