2016-11-23 2 views
0

У меня есть модель с тоннами полей (10-20), некоторые из которых являются полями Textarea.Установить размер Textarea для всех текстовых полей в ModelForm

Все поля текстового поля должны иметь определенный размер (который отличается от значения по умолчанию). Я мог бы установить их все, используя словарь виджетов в классе Meta, но потом мне пришлось бы устанавливать их один за другим, что кажется излишним излишним.

Есть ли лучший способ решить эту проблему?

Update: Так как это было предложено в комментариях использовать нормализацию базы данных, я буду конкретизировать мой случай немного: У меня есть объект модели, которая имеет основной целью принятия во многих пользователей данных (т.е. «приложение»). Преимущество простого изложения каждого вопроса для пользователя как одного из полей заключается в том, что я могу легко создать для него модельную форму и отобразить и отредактировать данные в админе (что тоже хорошо для моих пользователей crm).

Я мог бы создать такую ​​модель для каждого поля формы, но я не уверен, как бы я мог использовать модель ModelForm для ее создания.

+0

«У меня есть модель с кучей полей, некоторые из которых являются TEXTAREA поля» Google для нормализации базы данных – e4c5

+0

означало, как 10 к 20 :) – Julian

+0

да, это достаточно плохо – e4c5

ответ

0

На основе данных, я могу только предложить такой подход:

from django import forms 

textarea_fields = ['field1', 'field2'] 
form = YourForm() 

for field_name in [f for f in form.fields.keys() if f in textarea_fields]: 
    form.fields[field_name].widget = forms.Textarea() 
Смежные вопросы