Я немного сбит с толку относительно того, что вы пытаетесь сделать.Тем не менее, я бы порекомендовал, если это возможно, использовать библиотеку форм, включенную в Django, вместо того, чтобы визуализировать кучу элементов формы вручную в шаблоне.Вот пример простой формы с настраиваемым / динамическим выбором, отображаемым в виде флажков.
>>> class CheckboxForm(forms.Form):
... items = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple)
...
>>> choices = (('item-1', 'This is item 1'), ('item-2', 'This is item 2'), ('item-3', 'This is item 3'))
>>> form = CheckboxForm(initial={'items':('item-2',)})
>>> form.fields['items'].choices = choices
>>> print form['items']
<ul>
<li><label for="id_items_0"><input type="checkbox" name="items" value="item-1" id="id_items_0" /> This is item 1</label></li>
<li><label for="id_items_1"><input checked="checked" type="checkbox" name="items" value="item-2" id="id_items_1" /> This is item 2</label></li>
<li><label for="id_items_2"><input type="checkbox" name="items" value="item-3" id="id_items_2" /> This is item 3</label></li>
</ul>
>>>
Обратите внимание, что «начальный» kwarg, данный конструктору формы, имеет ключ для поля «items», которое должно бытьитерируемый из идентификаторов элементов, которые будут проверяться по умолчанию.Вы можете видеть, что 'item-2' задан как начальное значение для поля 'items', а в полученном HTML-отображении проверяется 'item-2'.Таким образом, настраивая этот «начальный» аргумент, вы можете указать, какие из элементов первоначально проверяются на вашей странице.
Если вы используете формы Django, вы также можете легко проверить отправленные данные формы.Вам не нужно указывать форму 'initial' при привязке ее к входным данным, так как не имеет значения, какие элементы были / изначально выбраны.
# valid submission
>>> form = CheckboxForm({'items':('item-2',)})
>>> form.fields['items'].choices = choices
>>> print form.is_valid()
True
>>> print form.cleaned_data
{'items': [u'item-2']}
# invalid submission, 'item-4' does not exist in the field choices
>>> form = CheckboxForm({'items':('item-4',)})
>>> print form.is_valid()
False
Примечание: Вы также можете настроить пользовательскийконструктор в форме и передать ему выбор вместо установки field.choices после создания формы.