Мне нужно создать 16 идентичных forms.Charfield
в Django
form
. Итак, в основном мне нужно что-то вроде этого:
Class MyClass(forms.Form):
a_1 = forms.CharField()
....
a_16 = forms.CharField()
Есть ли способ создать их в for
l oop, чтобы мне не приходилось печатать одно и то же 16 раз?
Я пытался:
Class MyClass(forms.Form):
for i in range(1, 17):
i = forms.CharField(
label = str(i),
required = False,
max_length = 100,
)
, но это создает только одно поле, потому что, конечно, я не расширяюсь до 0, 1, 2 ... 16
Я также пытался использовать setattr
вне класса и для хранения forms.CharField
объектов в list
, но они также не работали. На отображаемой странице поля не отображаются.
Class MyClass(forms.Form):
b = forms.CharField()
for i in range(1, 17):
setattr(
MyClass,
'qt_'+str(i),
forms.CharField(
label = 'Other TMT labeling',
required = False,
widget = forms.Textarea(attrs={'rows':4,}),
)
)
Class MyClass(forms.Form):
l = []
for i in range(1, 17):
l.append(forms.CharField(
label = str(i),
required = False,
max_length = 100,
)
)