这段代码正在更改类中所有CharField的大小。如何更改一个CharField的大小?

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

最佳答案

定义一个自定义模型形式,该形式将覆盖您的字段的小部件:

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'})仅会影响在模型admin中显示表单字段的方式。如果要更改数据库中列的长度,则应设置max_length

class MyModel(models.Model):
    my_field = models.CharField(max_length=20)

07-24 20:53