0

モデル インスタンスが保存されたときにメールを送信したい。これを行うために、post_save シグナルをリッスンします。

#models.py
@receiver(post_save, sender=MyModel, dispatch_uid="something")
def send_email(sender, **kwargs):
    instance = kwargs['instance']
    email = ModelsEmailMessage(instance)  
    email.send()

私の見解では、フォームを処理し、サブスクライバーをオブジェクトに追加します。

#views.py
object = form.save()
object.subscribers.add(*users)

私の問題は、ユーザーが追加される前に、フォームの保存が post_save シグナルをトリガーすることです。

しかし、私がこれを行うと:

object = form.save(commit=False)

次に、ID のないオブジェクトに m2m インスタンスを追加できません。

ひゅるぷ!

4

1 に答える 1

2

ほとんどの場合、電子メールを送信するには独自のシグナルを作成する必要があります。

オブジェクトが保存されたときに電子メールを送信しようとするイベントが実装されていますが、それはあなたが望むものではありません。オブジェクトが保存subscribersされ、ビューの処理後に追加されたときに電子メールを送信するとします。つまり、その2ステップの操作。

于 2012-07-24T11:32:49.163 に答える