私はコードを覚えて、私に動機を与え続けるライブDjangoプロジェクトを持っています。私のDjangoアプリケーションでは、ユーザーはコメントを残し、他の人はコメントに返信します。簡単なユーザ通知システムを処理するためのDjangoシグナル
ユーザーがホームページを更新するたびに、以前のコメントに新しい返信を受け取ったかどうかを計算し、通知があれば計算します。
ユーザーが1トンのコメントを残して1トンの返信を受け取った場合、計算にはのlurkersのコンテンツを作成しないユーザーよりも時間がかかります。これらのコンテンツ制作者の経験を向上させたいと思います。
deeper into itを読むと、私はDjangoの信号が行く方法だと考えました。たとえば、新しい返信が残るたびにpost_save()シグナルを発生させることができます。このシグナルは受信してユーザの通知を更新します。このようにして、返信が残っているときに通知が更新されます。
私は自分のコードをリファクタリングする必要がありますが、私はまだ上記の実装上の詳細についてはぼんやりしています。誰も私に、私は上記を達成する方法の簡単な説明の例を提供することはできますか?それは私を始めさせるだろう。
現在、ユーザーの応答処理は、私のviews.py class PublicreplyView(CreateView)
にCBVのform_valid
方法で処理されます。私は私のCBVのメソッドとして以下を含めることができると推測していますか?
from django.db.models.signals import post_save post_save.connect(form_valid, sender=User)
そして他の場所で、私は、彼らがホームページを更新したら、すべてのユーザーに対して通知を処理異なるCBVを持っています。私はそれを完全に書き直す必要があると思いますか?私が言ったように、私はその前にぼんやりとしています。
わかりやすく簡単な例を教えてもらいたいと思います。ありがとう!
p.s.私はDjangoにいます< 1.8。
これは良い質問ですが、非常に幅広く、おそらく広すぎるかもしれません。問題の説明を読むと、何か不足しているように思えます。ページが表示されるたびに通知を計算したくない場合は、それらを保存する必要があります。これは、あなたのpost_saveで、DBのどこかにユーザーのための通知を保存/更新することを意味します。彼がホームページを見たとき、DBの同じ値を更新(減少)します。 – Djizeus
@Djizeus:CBVの 'form_valid'メソッドに' post_save'をどう使っていますか?あれは正しいですか? –