1. ホーム
  2. django

[解決済み] django admin は obj を変更するときは読み取り専用で、新しい obj を追加するときは必須のフィールドを作成します。

2022-12-28 09:23:27

質問

管理画面で、オブジェクトを変更するときはフィールドを無効にし、新しいオブジェクトを追加するときは必須にしたいと思います。

この件について行くためのdjangoの方法は何ですか?

どのように解決するのですか?

管理者の get_readonly_fields メソッドをオーバーライドできます。

class MyModelAdmin(admin.ModelAdmin):

    def get_readonly_fields(self, request, obj=None):
        if obj: # editing an existing object
            return self.readonly_fields + ('field1', 'field2')
        return self.readonly_fields