Если бы я только собирался создать одну форму, и я знал, что она не будет часто (или когда-либо изменяться), я мог бы подумать о том, чтобы просто настроить поля как столбцы.
Однако, если вы собираетесь использовать несколько форм и хотите часто менять поля, лучше было бы создать (например) модель формы, в которой будет храниться базовая информация о форме и другая модель FormField, чтобы вы могли создавать каждое поле как отношение к форме. Вы можете добавить такие вещи, как тип, в модель FormField и автоматически сгенерировать тип ввода, требуемый в вашем шаблоне.
Затем вы можете сделать что-то в соответствии с созданием модели FormSubmission и FormFieldInput для сохранения сохраненного пользовательского ввода из отправка формы и просмотр данных аналогично тому, как вы ее отображали.
Вероятно, это немного излишне, если только вы не хотели функциональности построителя форм, автоматической настройки / рендеринга и т. д. c. Вы также получите 30 строк данных FormInput для одной отправки формы. Иногда это имеет смысл, иногда нет.