我有一个包含多个CharField和SlugField实例的模型,例如:
slug = models.SlugField(max_length=255, db_index=True, blank=False, null=False)
但是当我在admin中查看该字段时,它呈现为:
<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和SlugField的长度,因为默认情况下它们非常短。
所以我的ModelAdmin看起来像:
class MyAdmin(admin.ModelAdmin):
formfield_overrides = {
models.CharField:{
'widget': TextInput(attrs={'size':'200',})
},
}
如果我注释掉'widget': TextInput(attrs={'size':'200',})
行,问题就会消失。这是为什么?
如何在我的ModelAdmin中增加所有 Char / SlugFields的显示长度的同时解决这个问题?