为ModelForm中的所有Textfields设置Textarea大小

时间:2016-11-23 11:37:03

标签: python django django-models django-forms

我有一个包含大量(10-20)个字段的模型,其中一些是Textarea字段。

所有textare字段都应具有一定的大小(与默认值不同)。我可以使用Meta类中的widget字典来设置它们,但是我必须逐个设置它们,这似乎是不必要的冗余。

有没有更好的方法来解决这个问题?

更新: 由于在评论中建议使用数据库规范化,我将稍微充实我的案例: 我有一个模型对象,其主要目的是获取大量用户数据(即“应用程序”)。将每个问题作为一个字段写给用户的好处是我可以轻松地为它创建一个模型表单,并在管理员中显示和编辑数据(这对我的crm人也有好处)。

我可以为表单的每个字段创建一个类似dictonary的模型,但我不确定如何实际使用ModelForm来创建它。

1 个答案:

答案 0 :(得分: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()