python - 如何改变CharField的大小

标签 python django django-admin textinput django-widget

此代码正在更改类中所有 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'}) 只会影响表单字段在模型管理中的显示方式。如果您想更改数据库中列的长度,您应该设置 max_length

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

关于python - 如何改变CharField的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50327858/

相关文章:

python - 关于 pythonanywhere : trouble running the django-admin shell 的 Django 教程

python - 使用 Enum 时 Admin 中的 Django 选择

python - 如何在测试期间覆盖 "env_file"?

django - 集成数据库后无法运行django服务器

python - 当某些文本在 python 3 前面时如何打印文本进度条?

python - 查询多对多字段

django - 如何使用 NGINX 为 Django 应用程序的用户 www-data 设置 AWS 凭证

django - 在另一个下拉列表上进行选择时,如何在Django管理员中过滤下拉列表

python - 通过使用标题作为列名加载 csv 文件来创建数据库(并添加以文件名作为名称的列)

python - 在 Ubuntu 上使用 python MSS 库时出现 XGetImage Failed 错误