如何改变CharField的大小

时间:2018-05-14 10:11:39

标签: python django

此代码正在更改类中所有CharField的大小。我怎样才能改变一个CharField的大小?

formfield_overrides = {
        models.CharField: {'widget': TextInput(attrs={'size': '20'})},
    }

1 个答案:

答案 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)