問題タブ [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 に答える
841 参照

django - 複数の post_save 信号により、変換されたモデルで slugify の問題が発生する

現在、プロジェクトで翻訳されたモデルを有効にするために django-nani を使用しています。

これらのモデルの多くは、URL 生成にスラッグを必要とします。私のクライアントは技術者ではないので、ナメクジを入力するように依頼することは、期待とサポート コストの両方の観点から合理的ではありません。翻訳は新しい要件であるため、古いモデルを翻訳用に調整する作業を行っています。

モデルを保存するとき、nani は変換を保存する目的で post_save シグナルを登録します。これは問題ありませんが、post_save シグナルを登録して、上記の翻訳を使用してスラッグを生成しようとすると、運が悪くなります。私の信号が後に実行されているか、同時に実行されており、変換オブジェクトが存在しません。

問題のあるモデル コード:

これにより、 product_post_save の最初の行でProductTranslation 一致するクエリがありませんDoesNotExist 例外が発生します。

post_save を使用する代わりに、save メソッドをオーバーライドするように nani をリファクタリングして簡単に試してみましたが、それは重要な作業のようです (少なくとも、私のようにその内部についてほとんど知らない人にとっては)。

私はいくつかのサードパーティの自動スラッグ フィールドを見てきましたが、この特定の状況と翻訳ライブラリで機能するものは想像できません。

私の質問は...

  • 1 つの post_save が定義されている他のすべての後に並んでいることを確認する方法はありますか?
  • それを除けば、他の誰かがこの問題に対する別の/より良い解決策を提案できますか?

編集:シグナルの優先順位が提案され、Django コア開発者によって削除されたことがわかりました。

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

django - Django pre_save シグナル

保存する前にモデル データを変更できるようにする必要があったため、pre_save ハンドラーを使用することが最善の選択肢であると考えました。

kwargs のインスタンス キーの下で、保存している実際のモデル インスタンスを見つけることを期待していましたが、代わりに LogEntry クラスのオブジェクトを取得しました。これが、関数がこのエラーを返すのに失敗した原因です: 'LogEntry' object has no attribute 'tags' . それで - どうすれば修正できますか?インスタンスに属性タグがあるかどうかを確認することは解決策ではありません。これは、常に logentry オブジェクトのみを取得するためです。最終的には Model.save メソッドをオーバーロードできますが、これは避けたいと思います。

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

django - 他のユーザーがデータを変更した場合のDjangoの更新ページ

テスト用のdjangoアプリがあります。

1つのページで、テストはすべてのユーザーに同じ質問を表示します。

ユーザーが正解したら、他のアクティブなユーザーのブラウザに信号を送信して、次の質問に更新してください。

私はdjangoでシグナルについて学んでいますが、彼らと一緒に仕事を学んでいますが、「リフレッシュシグナル」をクライアントブラウザーに送信する方法はわかりません。

特定の値(実際の質問)が変更されたかどうかをチェックし、変更された場合はページをリロードするjavascriptコードで実行できると思いますが、この言語がわからず、見つけた情報が混乱していました。

誰か助けてもらえますか?

どうもありがとう。

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

django - Django シグナルを使用する正しいケース

グローバルな質問と、シグナルのコンテキストにおける特定の問題に関する質問があります。どのような問題を解決するために、シグナル ディスパッチャが最も便利ですか。

複数のモデルフォームを外部キーで保存する際に問題があります。これは信号で解決できると思いました。しかし、信号の範囲を理解していないため、方法がわかりません。

モデル

すべてのフォームは、上記のモデルから継承されたモデルフォームです。最後の 2 つは modelformsets で使用されます。このフォームはすべて、テンプレート内の 1 つの html フォームに表示されます。

フォーム

ビューでは、現在のモデルの割り当てられた ID を使用してフィールドEducationFormExperienceForm保存する必要があります。cvCV

この問題を信号で解決できますか?

問題の定式化が難しかったので、不明な点があれば質問を編集します。

0 投票する
4 に答える
5796 参照

python - post_save シグナル中にオブジェクトにアクセスできるのに、別のプロセスでオブジェクトを呼び出すそのシグナル内のコードをトリガーするときはアクセスできないのはなぜですか?

すべて、django シグナルに問題があります。

私はモデルを持っています ページ読み込みの応答性を向上させるために、同じデータベースを使用して実行している 2 つ目の localhost Web サーバーへの呼び出しを介して、実行する必要があるいくつかの集中的な処理をオフロードしています。呼び出しプロセスはオブジェクトを取得できるが、呼び出されたプロセスは取得できないという動作が見られます。ポート 80 とポート [ポート] の両方が、同じデータベースで実行されている django プロセスを指しています。

models.py で

views.py で

さらに、urlopen 呼び出しで例外が発生した後、オブジェクトはデータベースに存在しません。オブジェクトが保存され、データベースに書き込まれた後に post_save が呼び出されたことは私の理解でした。これは間違っていますか?

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

django - django シグナルまたは通知を使用した Facebook のような通知の更新

django-notifications または django-signals を使用して、他のユーザーがユーザーのブログや投稿にコメントを気に入ったり投稿したりした場合に、ユーザー プロファイルに表示される Facebook の更新通知のようなものを作成するにはどうすればよいですか?

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

python - django-notificationを使用して、誰かが投稿にコメントしたときにユーザーに通知する方法

私はしばらくの間djangoで開発しており、ブログの作成、質問の投稿、コンテンツの共有などの機能を備えたすっきりとしたWebサイトを開発しました。しかし、不足していることが1つあります。つまり、ユーザーへの通知を作成することです。

私がやりたいのは、誰かが投稿にコメントしたとき、または特定の投稿をフォローしていて更新がある場合は、プロフィールでユーザーに通知し、その更新をユーザーに通知することです。私は多くのアプリケーションを見回しましたが、それを行う方法についてはまだ非常に混乱しています。

使用する場合、django-notificationこれは電子メールでユーザーに通知するためにのみ使用できるという印象があります(間違っている可能性があります)。つまり、Facebookのように、これらの通知をユーザープロファイルに表示することはできません。

まず、自分が間違っているかどうかを知りたいのですが、それから、それを実行する方法についての適切なチュートリアルまたはガイダンスが本当に必要です。通知を登録して適切なシグナルで送信する方法は知っていますが、これらの通知をテンプレートに表示する方法についてのドキュメントはありません。

ガイダンス/チュートリアル/入門ドキュメントをいただければ幸いです。

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

django - Djangoはモデルをシグナルの送信から除外します

post_save、delete、initシグナルを処理してモデルとそのCRUD操作を追跡し、処理されたこの操作に関するエントリをデータベースに保存したいと思いました。

次に面白いのは、保存の再帰です...

モデルCRUD_Storageを作成しましたが、pre(post)init、delete、saveなどのシグナルを送信しないようにします。

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

django - dispatch_uid を使用している場合でも、1 回の保存で Post_save が 2 回受信されました

個々のファイルにモデルがあります。

__init__.py各モデルをインポートしてから、シグナル処理を設定します。

Eventモデルについては、いくつかのpost_save処理が必要です。

これは の切り詰められたバージョンです__init__.py:

Eventコンソール経由で保存するたびにメッセージpost_saveが 1 回出力されますが、管理インターフェイスを使用するたびに 2 回出力されます。これは、内部のモデルもインポートしているためかもしれませんadmin.py

post_save2 回起動することなく、管理インターフェイスから Event オブジェクトを保存できるようにするための回避策はありますか?