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
While, first you should use BooleanField in your model, not the CharField. Then, there are two accesses:
just put {{form.yourField}} in your template (preferred)
or, use {% if form.yourFiled.value %} checked {%endif%}
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.
Work for me:
{% for foo in form.tags %}
<label class="publication-tag">
<input class="publication-tag__checkbox"
{% if foo.choice_value in foo.value %}checked="checked"{% endif %}
type="checkbox"
name="{{ foo.name }}"
value="{{ foo.choice_value }}">
{% endfor %}
That:
{% if foo.choice_value in foo.value %}checked="checked"{% endif %}
In models.py:
class Article:
published = BooleanField()
(...)
In the template:
<input type="checkbox" name="published" {% if article.published %}checked{% endif %} />