問題タブ [django-signals]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1009 参照

django - 中間モデルでclearを使用すると、Djangoのpre_deleteシグナルとpost_deleteシグナルが同期しなくなります

私は3つのモデルを持っています

関係が変更されるたびに、djangoシグナルを使用して計算を行っています。明示的な中間モデルが指定されているため、m2m_changedを使用して削除することはできません。だから私はpre_deleteを使っていました。関係のいずれかの側でclear()が呼び出される場合を除いて、すべて問題ありません。clear()を呼び出すと、中間モデルでdeleteが呼び出され、pre_deleteとpost_deleteが実行されます。削除の順序を確認してみました。最初にすべてのpre_deletesが起動され、次にすべてのpost_deletesが起動されます。

たとえば。clear()の結果として削除されるC(c1、c2、c3)のインスタンスがある場合。順序は-

c2のpre_deleteの間、c1はまだ存在しています。それは計算を混乱させています。clear()でも呼び出されるCの個々の削除にフックしたいので、m2m_changed pre_clear/post_clearを使用していません。ここに何か提案はありますか?Djangoシグナルのドキュメントもあまり説明的ではありません。

0 投票する
3 に答える
202 参照

python - Django 1.3、eBayのように投稿が終了したときに通知する方法は?

私は完全に混乱していて、これを行う方法がわかりません。私の説明/情報が悪い場合はご容赦ください。

だから私は、django-notificationを介して通知を行うか、ebayのようにユーザーの投稿が終了したときにユーザーの1人に電子メールを送信することを言いたいと思います。私のデータベースには、投稿が終了する日時を保存するモデルがありますが、現在の時刻がユーザーに警告するようにシステムに警告する信号などを効果的にチェックまたは保存する方法がわかりません。 >終了日時より。

ありがとう!

投稿が終了した秒後にメール/通知を送信したいので、スケジューラを使用して投稿が終了したかどうかを確認することはできないと思います。毎秒のように確認する必要があるため、これは非効率的すぎると思います。 、しかし私が上で言ったように、私は何についてもよくわかりません...

0 投票する
8 に答える
35761 参照

django - Djangoプロジェクトでsignals.pyファイルを保持するのに適切な場所

私が読んでいたDjangoのドキュメントに基づくとsignals.py、appフォルダーから始めるのが良いようですが、私が直面している問題は、のシグナルを作成しpre_save、モデルからクラスをインポートしようとすると、競合することです。import私のモデルでは。


Comm_Queue内部signals.pyをインポートし、内部の信号もインポートするため、このコードは実行されませんmodels.py

この問題をどのように克服できるかについて誰かがアドバイスできますか?

よろしく

0 投票する
2 に答える
37389 参照

django - 更新時にdjangopost_saveシグナル

次のようなpost_saveレシーバーを設定しようとしています

Gameオブジェクトの更新後、最初のレシーバーは正しく呼び出されますが、MyPickオブジェクトの更新の呼び出しによって、2番目のレシーバーが呼び出されることはありません。post_saveシグナルは更新時に機能しませんか、それともここで何か他のものが欠けていますか?

ありがとう

0 投票する
1 に答える
40 参照

django - Djangoでアクションを実行した管理者を発見する

管理コンソールで何かが発生するたびに (ユーザーが保存されたとしましょう)、特定のユーザーのセットに通知されるシステムをセットアップしようとしています。post_save を接続しましたが、正常に動作します。コールバック関数に渡されたインスタンスから、必要なほとんどのデータ (保存されたユーザーとフィールド) を取得できます。ただし、要件には 1 つのことがあり、それを行う方法がわかりません。それは、どの特定の管理者が変更を行ったかを示すことです。それをどのように行うことができるかについてのアイデアはありますか?

ありがとう、ルカ

0 投票する
9 に答える
10859 参照

python - シグナルでDjangoモデルの継承を使用するには?

Django にはいくつかのモデル継承レベルがあります。

とから継承された多くの異なるモデルがWorkAttachmentFileBasedありWorkAttachmentます。attachment_count添付ファイルが作成されたときに、親作業のフィールドを更新するシグナルを作成したいと考えています。親送信者 ( ) に対して作成されたシグナルがすべての継承されたモデルに対しても実行されると考えるのは論理的ですWorkAttachmentが、そうではありません。これが私のコードです:

から継承されたすべてのモデルでこの信号を機能させる方法はありWorkAttachmentますか?

Python 2.7、Django 1.4 プレアルファ

PSネットで見つけた解決策の1つを試しましたが、うまくいきませんでした。

0 投票する
1 に答える
300 参照

django - Djangoの初期化コード?

サイトの作成時に Django に 1 回実行させたい初期化コードがあります。

このコードを syncdb シグナルにフックするのは適切でしょうか? もしそうなら、この信号はどこに行きますか? しかし、syncdb を複数回実行すると、コードを複数回実行するとは思いませんか?

0 投票する
1 に答える
42 参照

django - Django runonce-per-dbフラグ?

Djangoの「runonce-per-db」フラグとは何ですか?

このスレッドで言及されているのはわかりますが、ドキュメントが見つかりません。

0 投票する
2 に答える
386 参照

django - Django のシグナル

異なるアプリ ディレクトリに 2 つの models.py ファイルがあります: users.models.py と friends.models.py。

問題が 1 つあります。UserProfile モデルからユーザーを削除した場合、そのユーザーの友情ネットワークもすべて削除する必要があります。とても自然です。

しかし、Friendship を users.model.py にインポートすると、次のエラーが表示されます: Cannot import name Friendship

これら 2 つのファイルの相互インポートが原因でエラーが発生したことは理解しており、シグナルを使用してこの問題を簡単に解決できることはわかっていますが、適切な方法でそれを行う方法がわかりません。

この特定のケースで誰か助けてもらえますか?

users.models.py で:

friends.models.py で:

前もって感謝します!!!

0 投票する
2 に答える
1904 参照

django - 保存後、モデル ID が存在しません

単一のモデルに関連する複数のモデルがあります。これらのモデルの保存時に、メイン モデルの pk をキーとするディレクトリに OS 上のファイルを配置するために、メイン モデルの ID を取得するために save をオーバーライドしました。

たとえば、多くの部屋がある建物を考えてみましょう。部屋の画像はすべて、建物の ID をキーとするディレクトリに保存されます (部屋のサブディレクトリはありません)。

部屋が保存されたときに建物が存在する限り、オーバーライドされた保存メソッドは正常に機能します。ただし、建物がまだ保存されておらず、django admin を介して建物に部屋を追加している場合、建物の pk がまだ存在しないため、画像はアップロード ディレクトリに残ります。

最初に、建物の保存を上書きし、部屋の画像を新しく作成された建物ディレクトリに移動しようとしました(再び建物の pk をキーオフしました)。super(Building, self).save(*args, **kwargs) にもかかわらず、最初に建物の ID が設定されていませんでした。

次に、とにかく post_save シグナルがおそらくよりクリーンであると判断し、そのようにしました。残念ながら、ID は投稿保存にも存在しないようです。ID を印刷しようとしても、モデルを 2 回目に保存するまでポスト保存がトリガーされたときに値が表示されません。

この他の SO 回答で受け入れられた出力が期待されるように id が設定されていない理由を説明する方向に誰かが私を向けることができますか?

ありがとう。

編集:

コメントで要求されたコードを次に示します。最初の質問を単純化したので、ここにもう少し含めます。ここには 3 つのレベルがあり、部屋のある建物のリストです。リストは、私が行を介して単純に印刷しようとしたものですprint kwargs['instance']. 下部には、2 回連続して保存した後の出力が含まれています。最初の保存後にインスタンスが完全に存在しないことに注意してください。これらは文字通り背中合わせで、間にアクションはありませんでした。Building_Room などへの参照は、テーブルを介して行われます。RoomImage、BuildingImage、および ListingImage は、データ フィールドを除けばすべて似ているため、1 つだけ含めました。

いくつかの出力: