Форма Django: как проверить состояние флажка в шаблоне - PullRequest
3 голосов
/ 07 сентября 2011

У меня есть форма с флажками, которая работает нормально, но когда пользователь отправляет форму с ошибками, и мой флажок установлен, мне нужно изменить класс 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 }} не работает

Ответы [ 5 ]

20 голосов
/ 07 сентября 2011

Используйте {% if form.mycheckbox.value %}. Это будет иметь значение true, если флажок установлен. Для противоположного поведения используйте {% if not form.mycheckbox.value %}.

Обратите внимание, что синтаксис {% if ... %}, а не {{ if ...}}. Квадратные скобки предназначены для команд, двойные скобки - для вывода переменных.

16 голосов
/ 27 декабря 2011

В models.py:

class Article:
    published = BooleanField()
    (...)

В шаблоне:

 <input type="checkbox" name="published" {% if article.published %}checked{% endif %} />
5 голосов
/ 20 января 2016

Работа для меня:

{% 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 %}

То:

{% if foo.choice_value in foo.value %}checked="checked"{% endif %}
0 голосов
/ 30 мая 2019

Хотя сначала вы должны использовать BooleanField в вашей модели, а не CharField. Затем есть два доступа:

  • просто поместите {{form.yourField}} в свой шаблон (предпочтительно)

  • или используйте {% if form.yourFiled.value%} проверено {% endif%}

0 голосов
/ 07 сентября 2011

Шаблоны Django оцениваются на стороне сервера.

Я думаю, вы хотите заглянуть в JavaScript, чтобы проверить состояние ваших флажков.Делать это на языке шаблонов (особенно на языке Django) - очень плохая идея.

Любая обработка / расчет должны выполняться в функции / классе представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...