Django

Django シグナル

組み込みシグナル、pre_save、post_save、pre_delete、カスタムシグナル、receiver、シグナルのベストプラクティス

18 面接問題·
Mid-Level
1

Django におけるシグナルとは何ですか?

回答

シグナルは、フレームワーク内の別の場所で特定のアクションが発生したときに、アプリケーションの特定の部分に通知できるようにするメカニズムです。シグナルにより、イベントの送信側とそのイベントに反応する receiver の間を疎結合にできます。Django は、モデル操作のために pre_save、post_save、pre_delete、post_delete などの組み込みシグナルを複数提供しています。

2

オブジェクトがデータベースに保存される直前に送出されるシグナルはどれですか?

回答

pre_save シグナルは、モデルの save() メソッドが実行される前に送出されます。これにより、派生値の計算やデータの正規化など、保存前にインスタンスへ変更を加えることができます。このシグナルはオブジェクトの作成時でも更新時でも呼び出されるため便利です。

3

receiver 関数を Django のシグナルに接続するために使用すべきデコレータはどれですか?

回答

django.dispatch の @receiver デコレータを使うと、関数を宣言的にシグナルへ接続できます。リッスンするシグナルをパラメータとして受け取り、オプションで送信元をフィルタするための sender も指定できます。この方法は connect() メソッドより読みやすく、コードの保守を容易にします。

4

post_save シグナルのどの引数で、作成と更新を区別できますか?

5

Django アプリケーションでは、シグナルの receiver のコードをどこに置くことが推奨されますか?

+15 面接問題

次の面接に向けてDjangoをマスター

すべての問題、flashcards、技術テスト、コードレビュー演習、面接シミュレーターにアクセス。

無料で始める