Проблема создания динамических полей формы в 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()
Но я не знаю, куда это добавить.
Пожалуйста, помогите мне в этом. Есть ли какая-нибудь хорошая документация по созданию поля динамической формы.