用例最简单的方法是使用CSS 。这是一种用于定义表示的语言。查看由表单生成的代码,记下您感兴趣的字段的ID,并通过CSS更改这些字段的外观。
long_descProductForm中字段的示例(当表单没有自定义前缀时):
#id_long_desc { width: 300px; height: 200px;}第二种方法 是将
attrs关键字传递给小部件构造函数。
class ProductForm(ModelForm): long_desc = forms.CharField(widget=forms.textarea(attrs={'cols': 10, 'rows': 20})) short_desc = forms.CharField(widget=forms.textarea) class meta: model = Product它的Django的文档中描述。
第三种方法 是将newforms的漂亮的声明性界面保留一段时间,然后在自定义构造函数中设置您的小部件属性。
class ProductForm(ModelForm): long_desc = forms.CharField(widget=forms.textarea) short_desc = forms.CharField(widget=forms.textarea) class meta: model = Product # Edit by bryan def __init__(self, *args, **kwargs): super(ProductForm, self).__init__(*args, **kwargs) # Call to ModelForm constructor self.fields['long_desc'].widget.attrs['cols'] = 10 self.fields['long_desc'].widget.attrs['rows'] = 20
此方法具有以下优点:
- 您可以为从模型自动生成的字段定义窗口小部件属性,而无需重新定义整个字段。
- 它不依赖于表单的前缀。



