django form:如何在模板中查看复选框状态

Gor*_*ran 3 django checkbox django-templates django-forms

我有一个复选框的表单工作正常,但当用户提交错误的表单并选中我的复选框时,我需要更改保存复选框的div类.所以我{{ form.mycheckbox.data }}在模板中进行了实验,并在页面加载时显示为False.现在,当用户单击复选框并且表单有错误时,它会显示.所以我尝试过:

{{ if form.mycheckbox.data == True }} 不起作用

{{ if form.mycheckbox.data != False }} 不起作用

{{ if form.mycheckbox.data == 'on' }} 不起作用

{{ if form.mycheckbox.data == on }} 不起作用

use*_*920 21

使用{% if form.mycheckbox.value %}.如果选中该框,则评估为true.对于相反的行为,请使用{% if not form.mycheckbox.value %}.

请注意语法{% if ... %}不是{{ if ...}}.百分比括号用于命令,双括号用于输出变量.


her*_*nsc 16

在models.py中:

class Article:
    published = BooleanField()
    (...)
Run Code Online (Sandbox Code Playgroud)

在模板中:

 <input type="checkbox" name="published" {% if article.published %}checked{% endif %} />
Run Code Online (Sandbox Code Playgroud)


小智 5

为我工作:

{% 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 %}
Run Code Online (Sandbox Code Playgroud)

那:

{% if foo.choice_value in foo.value %}checked="checked"{% endif %}
Run Code Online (Sandbox Code Playgroud)

  • 对上述`if condition`的修正是`{%if if foo.choice_value in forms.tags.value%} checked ="checked"{%endif%}` (2认同)