[解決済み] Django - Model.create() メソッドをオーバーライドしますか?
2023-01-06 19:43:39
質問
その
Django ドキュメント
をオーバーライドする例だけを挙げています。
save()
と
delete()
. しかし、私はモデルに対していくつかの追加処理を定義したいと思います。
が作成されたときだけ
. Railsに慣れている人なら、この方法は
:before_create
フィルタを作成するのと同じです。これは可能でしょうか?
どのように解決するのですか?
オーバーライド
__init__()
を上書きすると、オブジェクトの Python 表現がインスタンス化されるたびにコードが実行されることになります。rails は知りませんが
:before_created
フィルタは、オブジェクトがデータベースで作成されたときに実行されるコードのように私には聞こえます。もし、データベースに新しいオブジェクトが作成されたときにコードを実行したいのであれば、オーバーライドする必要があります。
save()
をオーバーライドして、オブジェクトが
pk
属性があるかどうかを調べます。コードは次のようになります。
def save(self, *args, **kwargs):
if not self.pk:
# This code only happens if the objects is
# not in the database yet. Otherwise it would
# have pk
super(MyModel, self).save(*args, **kwargs)
関連
-
[解決済み】Djangoのクエリセットフィルタリングでnot equalを行うにはどうすればよいですか?
-
[解決済み] Djangoの "slug "とは何ですか?
-
[解決済み] Django のモデルで on_delete は何をするのですか?
-
[解決済み] django の OneToOneField と ForeignKey の違いは何ですか?
-
[解決済み] Django のカスタムフィールドで User モデルを拡張する
-
[解決済み] Django のクエリで OR フィルタを行うにはどうすればよいですか?
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み】Djangoはデフォルトのフォーム値を設定する
-
[解決済み] Django の管理画面で同じモデルに対して複数の ModelAdmins/view を表示する
-
[解決済み] なぜ django の model.save() は full_clean() を呼び出さないのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Django の ForeignKey パラメータの使用法
-
ImproperlyConfiguredです。DEFAULT_INDEX_TABLESPACE の設定を要求されましたが、設定されていません。
-
[解決済み] QuerySetで空白またはNULLの名前をフィルタリングする方法は?
-
[解決済み] Docker-Compose使用時にDjangoデータベースのマイグレーションをどのように行うか?
-
[解決済み] django のクラスベースのビューで permission_required デコレータを使用する方法
-
[解決済み] Django - 外部キーのプロパティでフィルタリングする
-
[解決済み] django のテンプレートで最初の文字を大文字にする
-
[解決済み] Djangoのクッキー、どうすれば設定できますか?
-
[解決済み] DjangoでSELECT COUNT(*) GROUP BYとORDER BYを行うにはどうすればよいですか?
-
[解決済み] Django の日付テンプレートのデフォルトフォーマットを変更するには?