Я пытаюсь сгруппировать поля формы так, чтобы я мог перебирать каждую группу отдельно в моем шаблоне:
# app/forms.py
from django import forms
class CustomForm(forms.Form):
field1 = forms.FieldClass(label="Field 1")
field2 = forms.FieldClass(label="Field 2")
field3 = forms.FieldClass(label="Field 3")
field4 = forms.FieldClass(label="Field 4")
group1 = [field1, field2]
group2 = [field3, field4]
# app/templates/app/formTemplate.html
<form method="POST">
<div>
{% for field in form.group1 %}
<p style="display: block">
{{ field.label }}
<span style="float: right">
{{ field }}
</span>
</p>
{% endfor %}
</div>
<div>
{% for field in form.group2 %}
<p style="display: block">
{{ field.label }}
<span style="float: right">
{{ field }}
</span>
</p>
{% endfor %}
</div>
</form>
Насколько мне известно, это должно отображаться как:
Field 1 INPUT FIELD 1 HERE
Field 2 INPUT FIELD 2 HERE
Field 3 INPUT FIELD 3 HERE
Field 4 INPUT FIELD 4 HERE
Но вместо этого я получаю:
Field 1 <django.forms.fields.CharField object at ...>
Field 2 <django.forms.fields.CharField object at ...>
Field 3 <django.forms.fields.CharField object at ...>
Field 4 <django.forms.fields.CharField object at ...>
Кроме того, если я использую {% for field in form %}
вместо {% for field in form.groupX %}
, он будет отображаться как ожидалось (за исключением того, что он будет иметь все поля в обоих разделах).
Кто-нибудь знает, почему это не сработает?
Я просмотрел документы и API и не могу найти упоминаний об этом или каких-либо признаков того, что он не должен работать .
Я также пытался использовать {{ field.field }}
, {{ field.widget }}
и {{ field.widget.render }}
все безрезультатно.
Конечно, я также открыт для альтернативных предложений для группировки полей формы в краткой образом.