問題タブ [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 投票する
1 に答える
989 参照

django - カスタム信号が機能しない

シグナルを作成しました:

このシグナルはsignals.pyに配置され、models.pyにインポートします。

モデルファイルのフッターで、テスト目的でデバッグ文字列を出力する関数に接続します。

ここで、save()-メソッドで、シグナルを送信しようとします。

しかし、それは何も印刷しません。pre_saveのような組み込みシグナルを試してみると:

できます。何か案は?

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

django - バージョン管理されたモデル

変更できないモデルを実装する最善の方法を考えています (つまり、モデル データが変更されるたびに、オブジェクトの新しいインスタンスが作成され、以前のインスタンスに参照が追加されて、古いオブジェクトが変更されたという事実が反映されます)。新しいものによって廃止されました)。

現時点で、私が考えた簡単で汚いものは次のようになります。

これがうまくいくとしても、それはおそらく非常にお粗末な方法だと何かが私に教えてくれます。そのようなことを行うためのより「エレガントな」ソリューションはありますか?

ありがとう!

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

django - Django の pre_save/post_save データの変更

このpost_save/pre_save信号をdjangoから把握するのに苦労しています。

私のモデルにはフィールドがstatusあり、このモデルへのエントリが追加/保存されると、それに応じて何らかの条件でステータスを変更する必要があります。

私のモデルは次のようになります。

そして、pre_save 用に構成された私のシグナルハンドラー:

ticket.save()さて、この最後の行の文のすぐ下に置くとどうなるでしょうかif。これは、このアクションがシグナル自体を呼び出すため、巨大な反復ブラック ホールです。そして、この問題は と の両方pre_saveで発生しpost_saveます。

ええと...保存する前に(または保存した後に)エントリを変更する機能は、djangoの世界ではかなり一般的だと思います。それで、私はここで何が間違っていますか?シグナルは間違ったアプローチですか、それともここで何かが欠けていますか?

また、この pre_save/post_save 関数がトリガーされると、別のモデルのインスタンスにアクセスして、その特定の行エントリを変更することは可能でしょうか?

ありがとう

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

django - シグナルを使用して空のdjangoプロファイルを作成するdjango-registration

私はこことShackerのdjango-profilesの解決策を見てきました:DmitkoによるMissing Manualとその後のシグナルの解決策と、ここと多くの場所での回答。

詳細は次のとおりです。

AUTH_PROFILE_MODULE = "members.Profile"

members.models.py から

members.forms.py から:

members.signals.py から:

そして members.regbackend.py:

ハマった。基本的に、私の ProfileForm はユーザー登録ページにフィールドを追加していますが、保存時に、ユーザー名と電子メール アドレスを使用してユーザー オブジェクトを作成していますが、ユーザー オブジェクトまたはプロファイル オブジェクトの姓名は保存されません。ただし、空白のフィールドを含む空白のプロファイルが作成されます。何か小さなものが欠けているに違いないのですが、見えないようです。

したがって、信号は機能していますが、データはプロファイルに保存されていません。

正直なところ、私たちの最愛の Django に対するこのソリューションは、ベスト プラクティスを簡単にまとめて 1 か所にまとめるべきです。

ヘルプ。

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

django - Django:モデルに外部のシグナルコールバック関数がありません

ねえ、私のモデルで信号 pre_save を動作させようとしていますが、外部キーなどに問題があるようです。私のモデルは次のようなものです:

フォームが処理され、保存される場所は次のとおりです。

そして、これが私の信号受信機能です

そして、ここに例外があります:

"django.db.models.fields.related.ForeignKey object at 0x21eef86c" を割り当てることができません: "Log.project" は "Project" インスタンスでなければなりません。

@ 行 ---> log.project = sender.project.field の

project_blog_entry_signal() 関数

送信者オブジェクトは、プロジェクトをモデル インスタンスとして渡すのではなく、外部キー インスタンスとして渡すようです。何故ですか?

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

django - Djangoでpost_save(または他の)シグナルを選択的に抑制することは可能ですか?

オブジェクトの作成時にDjangoシグナル(post_saveまたはなど)を選択的に抑制できるかどうか、あるいは特定のパラメーターを送信できるかどうか疑問に思っています。post_init

私が持っているのはUserオブジェクトです。これは、コード内のさまざまな方法と場所で作成できます。したがって、Profileそれぞれにカスタムオブジェクトを自動的に割り当てるUserために、シグナルを使用しpost_saveます。ただし、ある特定のケースでは、作成されたオブジェクトにバインドしたい追加情報がありProfileます。シグナルへの引数としてそれを渡すことはpost_save素晴らしいことですが、それは可能ではないようです。

もう1つのオプションは、オブジェクトを手動で作成することですが、保存Profile後に作成する必要があります。そうしないと、インスタンスにバインドできません。ただし、インスタンスを保存すると、シグナルによって呼び出される関数を介して別のインスタンスが作成されます。UserProfileUserUserProfile

また、作成したばかりのProfileオブジェクトを取得することはできません'Profile' object is unsubscriptable。エラーが発生するためです。何かアドバイス?

アップデート:

考えられる状況の例を次に示します。

extra_paramメソッド内の変数をsignupcreateUserProfileメソッドに取得するにはどうすればよいProfileですか?オブジェクトの一部として格納されますか?

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

python - Django モデルで削除を防止する

私はこのような設定をしています(この質問のために簡略化されています):

従業員が削除されようとしているときに、彼がプロジェクトに接続されているかどうかを確認したいと思います。もしそうなら、削除は不可能なはずです。

信号とその操作方法について知っています。シグナルに接続して、のpre_deleteような例外をスローさせることができますValidationError。これにより削除が防止されますが、フォームなどによって適切に処理されません。

これは、他の人が遭遇する状況のようです。誰かがよりエレガントな解決策を指摘できることを願っています。

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

python - Django モデルのオブジェクトが追加/削除されたことを検出するにはどうすればよいですか?

タイプのオブジェクトを追加または削除するときFooは、同じ計算を行う必要があります。Fooモデルのオブジェクトの追加/削除を検出するにはどうすればよいですか? 例えば:

これら 2 つの方法でコードの重複を避けることはできますか?

信号を使用して、次のように実装できます

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

django - 別のモデルの新しいオブジェクトに基づいて、あるモデルからオブジェクトを作成する (Django)

Django (1.2) はかなり新しいですが、テスト中です。

私の頭痛の種は、製品オブジェクトが作成されたときに一連の SKU オブジェクトを作成する方法を考え出すことです。


最初は Product.save でこれを処理しようとしましたが、残念ながらサイコロはありません。次に、この信号のセットアップを試しました:

私が見たいくつかの例では、sender クラスの save メソッドを次のように呼び出しています。

...そして、それが私がいるところです。このセットアップではエラーはスローされませんが、前述の SKU も作成されません。

このシグナルのいずれかについて私がかなり離れている場合は、ポインタをいただければ幸いです。または、同様の偉業を達成するための別のテクニックがあれば、それも素晴らしいでしょう.

乾杯!

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

python - django-admin コマンドから django シグナルを送信しますか?

私は異常な問題を抱えています。私の django アプリケーションでは、シグナルを使用してメールを送信しています。django-admin コマンド (manage.py を介して実行される django.core.management.base.NoArgsCommand) から発せられるシグナルを除いて、すべてのシグナルが機能します。

さまざまな場所で信号を確認しましたが、この場所以外では機能しています。

シグナルを送信するコードは次のとおりです。

私は何か間違ったことをしていますか?

また、1日以内に日付を確認する簡単な方法はありますか?

アドバイスありがとうございます