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