我有一个包含多个 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 的显示长度?