Django: опции мультивыбора не заполняются в html - PullRequest
0 голосов
/ 02 июля 2018

Я использую django-multiselect. В HTML все элементы отображаются, но те, которые уже проверены, не показывают, что они проверены. Я смотрел на документацию , но она проверяется заранее. В частности, эта строка кода не работает: {% if value in myroles %}checked="checked"{% endif %} Может кто-то увидеть, что я сделал не так?

HTML

{% for value, text in form.role.field.choices %}
  <div class="ui slider checkbox">
    {{ value }}{{ text }}
    <input id="id_role_{{ forloop.counter0 }}" name="{{ form.role.name }}" type="checkbox" value="{{ value }}" {% if value in myroles %}checked="checked"{% endif %}>
    <label>{{ text }}</label>
  </div>

{% endfor %}

models.py

aaa= 1
bbb= 2
ccc= 3
ddd= 4
eee= 5
ROLE_CHOICES = (
    (aaa, 'AAA'),
    (bbb, 'BBB'),
    (ccc, 'CCC'),
    (ddd, 'DDD'),
    (eee, 'EEE'),
)

class myClass(models.Model):
    user                = models.OneToOneField(User, on_delete=models.CASCADE, primary_key=True)
    role                = MultiSelectField(choices=ROLE_CHOICES, default=True)

Когда я запускаю этот код на html-странице:

  {% for i in myroles %}
  {{ i }}{{ value }}
  {% endfor %}

Я получаю вывод 11 Это сбивает меня с толку, почему мое вышеупомянутое выражение if не работает.

...