14

Djangoのpost_saveシグナルを使用して、サイトに新しい記事が追加されるたびにユーザーにメールを送信しています。save()ただし、作成済みの記事にメソッドを使用すると、ユーザーは引き続き新しいメールを受信します。NEWエントリが追加された場合にのみメールを受信するにはどうすればよいですか?

前もって感謝します

4

3 に答える 3

31

シグナルは、保存されたものが作成されたかどうかを示すpost_saveブール引数を受け取ります。createdinstance

def my_callback(sender, **kwargs):
    if kwargs['created']:
        print('Instance is new')
于 2012-06-18T09:24:35.847 に答える
3

https://docs.djangoproject.com/en/dev/ref/signals/#django.db.models.signals.post_saveをご覧ください

実際には、「created:aboolean;新しいレコードが作成された場合はTrue」というシグナルで渡される引数があります。

私は、それでうまくいくはずだと思います。

于 2012-06-18T09:24:26.430 に答える
0

instance.idを確認することは、インスタンスが「新規」であるかどうかを判断するための優れた方法です。これは、データベースによって自動生成されたIDを使用する場合にのみ機能します。

于 2012-06-18T09:04:05.210 に答える