新しいという記事がサイトに追加されるたびに、Djangoのpost_saveシグナルを使用してユーザーに電子メールを送信しています。ただし、すでに作成された記事の場合は、save()
メソッドを使用するたびに新しいメールを受信します。 NEWエントリーが追加されたときにのみ電子メールを受信する方法は? instance.idの確認事前Djangoは新しいエントリのみのシグナルを受け取ります
11
A
答えて
28
post_save
シグナルは、instance
が作成されたかどうかを示すブール値created
を受け取ります。
def my_callback(sender, **kwargs):
if kwargs['created']:
print('Instance is new')
0
で
おかげで、インスタンスが「新」であるかどうかを決定する良い方法です。これは、データベースによって自動的に生成されたIDを使用する場合にのみ機能します。 「:;真の新しいレコードが作成された場合はブール作成」
+0
post_save信号IIRCでは動作しません。その時点でインスタンスには既にIDがあります。 –
2
は、実際の信号と渡される引数がありhttps://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.post_save
を見てみましょう。
私はそのトリックを行うべきだと思います。
+0
ありがとうChristoph、私は注意深くこれを読んでいたはずです。 –
関連する問題
- 1. AJAXクエリでDjangoのpost_saveシグナルを受け取る方法は?
- 2. forループは最後のエントリ値(python/tkinter)のみを受け取ります
- 3. linuxでシグナルを受け取る
- 4. Djangoは表示名の選択を受け取ります
- 5. symfonyは配列コレクションの1つのエントリを受け取ります
- 6. Django複数のpaypal IPNシグナルを受信
- 7. 複数のエントリをリストに追加して注文を受け取ります
- 8. HttpResponseRedirectを使用してDjangoでエラーを受け取ります
- 9. Facebook Graph Batchは、トップレベルのaccess_tokenのみを受け取ります
- 10. データテーブルのみ最初の行はjqueryを受け取ります。
- 11. djangoからの選択要求を受け取ります
- 12. 正しいmedia_rootと私はdjangoアプリケーションで404を受け取りました
- 13. SQLiteの更新クエリは永遠に受け取ります
- 14. django-rqのrqworkerがタスクを受け取りません
- 15. GAJのDjangoアプリからメールを受け取り続ける
- 16. pythonのサブクラス化:TypeErrorオブジェクト.__新しい__()はパラメータを受け取りません
- 17. 受信トレイを読み取って、エラー#298を受け取りました
- 18. GANETOR POSTリクエストのDjangoサービスはGETとして受け取りますか?
- 19. Python TCPサーバーは新しいソケットを受け取りますが、データは受信しません
- 20. ユーザー定義のシグナルを受け取ったときにプロセスがポーズしない
- 21. 永久にSQL Serverの更新を受け取ります
- 22. セメントのフレームワークは、プールの作業者のクローズでシグナル15を受け取ります
- 23. ファイルを新しいホスティングに転送し、SQLインジェクションを受け取ります
- 24. Django HTTPリクエストはget対getlistの動作を受け取ります
- 25. django-facebookconnectでfacebookユーザーのメールを受け取る方法はありますか?
- 26. Linuxシグナルを受け取ってスレッドに介入する
- 27. didEndEditingRowAtIndexPathはnilを受け取ります
- 28. Djangoはsettings.pyのINSTALLED_APPSへの変更を受け取りません
- 29. iPhoneのキーボードイベントを受け取ります
- 30. PythonはPOSTリクエストからformDataを受け取り、ストリームを取得し、File Corruptを受け取ります。
ありがとう!これは魅力的に機能しました。 –