2

我有一个包含多个 CharField 和 SlugField 实例的模型,例如:

slug = models.SlugField(max_length=255, db_index=True, blank=False, null=False)

但是当我在管理员中查看该字段时,它呈现为:

<input name="slug" value="some-arbitrary-value-much-longer-than-10-characters" maxlength="10" type="text" id="id_slug" size="200" />

并尝试编辑或保存触发 Django Admin 的内置 JS 表单字段验证,通知我只允许 10 个字符。

我在 admin.py 中做的唯一“奇怪”的事情是我使用 formfield_overrides 声明来增加所有 CharField 和 SlugFields 的长度,因为默认情况下它们很短。

所以我的 ModelAdmin 看起来像:

class MyAdmin(admin.ModelAdmin):

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

如果我注释掉该行'widget': TextInput(attrs={'size':'200',}),问题就会消失。为什么是这样?

如何解决这个问题,同时增加ModelAdmin 中所有Char/SlugFields 的显示长度?

4

0 回答 0