在Django项目中,默认情况下,你在Models.py文件中创建的每个模型,其字段都有默认使用的输入控件。比如,你在models.py中创建了Author模型,字段有name,title,birth_date。name字段类型是models.CharField类型,那么它默认是使用TextInuput控件。如果你想要更改模型字段在HTML显示的宽度等属性,你不能在HTML页面更改,而必须在forms.py中更改。
打开forms.py,
from django.forms import ModelForm, Textarea
from myapp.models import Author
class AuthorForm(ModelForm):
class Meta:
model = Author
fields = ('name', 'title', 'birth_date')
widgets = {
'name': Textarea(attrs={'cols': 100, 'rows': 20}),
}
widgets={…}这句代码可以控制字段在HTML页面显示的宽度等属性。比如上例中我是把name字段更改为Textarea控件。对于Textarea控件,是使用cols,rows两个属性分别控制列宽和行高。
默认情况下,使用的控件时TextInput
class AuthorForm(ModelForm):
class Meta:
model = Author
fields = ('name', 'title', 'birth_date')
widgets = {
'name': TextInput(attrs={'size': 80,'title': 'Your name'}),
}
如果是采用默认的TextInput控件,控制宽度的属性是size,注意,不是width。
title属性:当你把鼠标悬停在控件输入框上时,显示title属性值。