Перебирать списки полей формы в шаблоне - PullRequest
0 голосов
/ 18 апреля 2020

Я пытаюсь сгруппировать поля формы так, чтобы я мог перебирать каждую группу отдельно в моем шаблоне:

# 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 }} все безрезультатно.

Конечно, я также открыт для альтернативных предложений для группировки полей формы в краткой образом.

...