У меня возникли проблемы с стилем моей формы django с ModelMultipleChoiceField.Styling ModelMultipleChoiceField Django
Heres моя форма:
class SkriptenSelect(forms.Form):
skripten = StyledModelMultipleChoiceField(
queryset=None,
widget=forms.CheckboxSelectMultiple,
)
def __init__(self, *args, **kwargs):
choices = kwargs.pop('choices')
super(SkriptenSelect, self).__init__(*args, **kwargs)
self.fields['skripten'].queryset = choices
class StyledModelMultipleChoiceField(forms.ModelMultipleChoiceField):
def label_from_instance(self, obj):
return mark_safe('<ul class="list-inline" style="display: inline;">' \
'<li>{name}</li>' \
'<li>{semester}</li>' \
'<li>professor</li>' \
'</ul>'.format(name=escape(obj.name), semester=escape(obj.prefix))
)
И я использовал это для HTML:
<form action="." method="post">
<ul class="list-group">
{% for skript in result_form.skripten %}
<li class="list-group-item">
{{ skript }}
</li>
{% endfor %}
</ul>
{% csrf_token %}
<input type="submit" value="Submit Selected" />
Это требует, чтобы я положил HTML в мой файл формы, который не является очень mvc. Кроме того, это сильно меня ограничивает тем, как я могу создать список (например, создавая таблицу полей экземпляра модели)
Есть ли все, чтобы сделать это умнее? Я хотел бы получить доступ к {{skript.name}}, {{skript.checkbox}} или что-то в моем цикле {% для skript в result_form.skripten%}, но это, к сожалению, невозможно ...