1. ホーム
  2. django

[解決済み] シグナルハンドラは django プロジェクトのどこにあるべきですか?

2022-04-27 05:45:40

質問

私はdjangoのプロジェクトでシグナルリスナーを実装し始めたところです。 それらが何であるか、どのように使用するかは理解しています。 どこに置けばいいのかわからずに困っています。 django のサイトにあるドキュメントには、このように書かれています。

<ブロッククオート

このコードはどこに置くべきですか?

シグナル処理と 登録のコードは、好きなところに置いてください。 しかし、そのためには そのモジュールが含まれるモジュールは、早い段階でインポートされます。 シグナルを処理するために シグナルが必要となる前に登録されます。 送信される。このため、アプリの models.pyを置くのに良い場所です。 シグナルハンドラの登録

良い提案ですが、モデル以外のクラスやメソッドがmodels.pyにあることは、私を困らせるだけです。

では、シグナルハンドラの保存と登録のためのベストプラクティス/ルールは何でしょうか?

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

実は、私はこれらのメソッドをモデル自体のクラスメソッドにするのが好きなんです。そうすることで、すべてを1つのクラス内に収めることができ、インポートについて心配する必要がなくなります。