Djangoモデルの継承。フィールドの非表示または削除
-
03-07-2019 - |
質問
サードパーティのコードからモデルクラスを継承したい。一部のフィールドは使用しませんが、管理者でクライアントがモデルを編集できるようにします。管理者に非表示にするのが最善の策でしょうか、そもそも作成されるのを実際に防ぐことができますか?
さらに-不要なフィールドの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 /
継承するのではなく、カスタマイズされたフォームの使用を検討してください。
-
モデルに残っているフィールドを表示から除外できます。
-
フォームの
clean()
メソッドでデフォルト値を検証および提供できます。
所属していません StackOverflow