次のようないくつかの 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の表示長を増やしながら、この問題を解決するにはどうすればよいですか?