Django отлично работает, автоматически генерируя формы из ваших определений модели.
Первым шагом может быть создание модели Django, которая отражает вашу существующую базу данных.
Относительно флажка / текстового поля:
Django имеет большое разделение между полями и виджетами . У вас может быть IntegerField , в котором хранятся числа, но вы можете изменить виджет, который отображается для пользователя, когда он хочет изменить этот номер. В некоторых случаях у вас может быть поле ввода, в других текстовая область, или, возможно, раскрывающийся список. Поле позаботится о таких деталях, как преобразование типов и проверка, виджет определяет, как будет выглядеть поле формы.
С определенными типами полей связаны виджеты по умолчанию, но вы можете их переопределить.
Также обратите внимание, что существует разница между полями формы и полями модели .
Чтобы сделать это динамически, можете добавлять элементы в SoftDict self.fields на лету. То есть:
from django.forms.forms import Form
from django.forms.fields import CharField
class FunkyForm(Form):
def __init__(self, *args, **kwargs):
super(FunkyForm, self).__init__(*args, **kwargs)
for item in range(5):
self.fields['test_field_%s' % item] = CharField(max_length=255)
Даст вам класс формы, который создается с 5 динамически генерируемыми CharFields.