此代码正在更改类中所有CharField的大小。我怎样才能改变一个CharField的大小?
formfield_overrides = {
models.CharField: {'widget': TextInput(attrs={'size': '20'})},
}
答案 0 :(得分:3)
定义一个自定义模型表单,覆盖您的字段的窗口小部件:
from django import forms
class MyForm(forms.ModelForm):
class Meta:
widgets = {
'my_field': forms.TextInput(attrs={'size': '20'}),
}
然后在模特管理员中使用您的表单:
class MyModelAdmin(admin.ModelAdmin):
form = MyForm
...
请注意,设置TextInput(attrs={'size': '20'})
只会影响表单字段在模型管理中显示的方式。如果要更改数据库中列的长度,则应设置max_length
。
class MyModel(models.Model):
my_field = models.CharField(max_length=20)