I have a form with checkboxes that works fine, but when the user submits the form with errors and my checkbox is checked I need to change div class which holds the checkbox. So I was experimenting with {{ form.mycheckbox.data }}
in the template and it says False on page load. Now when user is click on a checkbox and the form has errors, it says on. So I tried:
{{ if form.mycheckbox.data == True }}
doesn't work
{{ if form.mycheckbox.data != False }}
doesn't work
{{ if form.mycheckbox.data == 'on' }}
doesn't work
{{ if form.mycheckbox.data == on }}
doesn't work
Use {% if form.mycheckbox.value %}
. This will evaluate to true if the box is checked. For the opposite behavior, use {% if not form.mycheckbox.value %}
.
Note the syntax is {% if ... %}
, not {{ if ...}}
. Percent-brackets are for commands, double-brackets are for outputting variables.
In models.py:
class Article:
published = BooleanField()
(...)
In the template:
<input type="checkbox" name="published" {% if article.published %}checked{% endif %} />
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With