質問

サードパーティのコードからモデルクラスを継承したい。一部のフィールドは使用しませんが、管理者でクライアントがモデルを編集できるようにします。管理者に非表示にするのが最善の策でしょうか、そもそも作成されるのを実際に防ぐことができますか?

さらに-不要なフィールドの1つが必要な場合はどうすればよいですか?最初に考えたのは、saveメソッドをオーバーライドして、デフォルト値を設定することです。

役に立ちましたか?

解決

モデルを継承している場合、既存のフィールドを非表示または無効にしようとすることはおそらく賢明ではありません。おそらくあなたができる最善のことは、まさにあなたが提案したことです: save()をオーバーライドし、そこでロジックを処理します。

他のヒント

adminで編集可能なフィールドを制御できます。

Djangoドキュメントから:

"名前とタイトルフィールドのみを含むAuthorモデルのフォームが必要な場合は、次のようにフィールドを指定するか除外します:

class AuthorAdmin(admin.ModelAdmin):
    fields = ('name', 'title')

class AuthorAdmin(admin.ModelAdmin):
    exclude = ('birth_date',)"

http://docs.djangoproject.com/en/dev/ ref / contrib / admin /

継承するのではなく、カスタマイズされたフォームの使用を検討してください。

  1. モデルに残っているフィールドを表示から除外できます。

  2. フォームの clean()メソッドでデフォルト値を検証および提供できます。

httpを参照してください。 ://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top