Проблема создания динамических полей формы в Django App с помощью crispy form

У меня есть одна модель, представленная ниже:-

class FeeItemAmount(models.Model):
    id = models.AutoField(primary_key=True)
    fee_item = models.ForeignKey(FeeItem, on_delete=models.CASCADE)
    class_obj = models.ForeignKey(Classes, on_delete=models.CASCADE)
    amount = models.IntegerField()

Для создания нового элемента я хотел заполнить объекты Classes из модели и на основе этого отобразить поля формы. По одному полю суммы для каждого класса. В коде я делаю это следующим образом:-

name = forms.CharField(label="Name", max_length=100)
months_list = forms.MultipleChoiceField(label='Months', widget=forms.CheckboxSelectMultiple,choices=months_name_list)
due_date = forms.IntegerField(label="Due Date",required=False)

def __init__(self, *args, **kwargs):
    super().__init__(*args, **kwargs)
    classes = Classes.objects.all()
    for class_obj in classes:
        field_name = 'class_%s' % (class_obj.id,)
        self.fields[field_name] = forms.IntegerField(label=class_obj.name,required=False)
    self.helper = FormHelper()
    self.helper.form_class = 'form-horizontal'
    self.helper.form_tag = False
    self.helper.label_class = 'col-sm-3'
    self.helper.field_class = 'col-sm-9'
    self.helper.layout = Layout(
        Div(
            Div('name', css_class='form-group col-sm-6 mb-0 border border-secondary'),
            Div('due_date', css_class='form-group col-sm-6 mb-0 border border-secondary'),
            css_class='form-row'),
        Div(
            Div(InlineCheckboxes('months_list'), css_class='form-group col-sm-12 mb-0 border border-secondary'),
            css_class='form-row'),
        Div(
            HTML("<p> Provide Amount for following Classes for this Fee Item:</p>"),
            css_class='form-row'),
    )

Теперь проблема в том, что эти динамически созданные поля не отображаются в форме. Если я удалю часть кода Layout, то эти поля отображаются, но не в том формате, который я хочу. Я новичок в Django и crispy form. Я искал решение этой проблемы в Google. Одно из решений, которое я нашел - использовать нарезку макета с помощью :-

form.helper.all().wrap()
form.helper.wrap_together()

Но я не знаю, куда это добавить.

Пожалуйста, помогите мне в этом. Есть ли какая-нибудь хорошая документация по созданию поля динамической формы.

Вернуться на верх