djangoである投稿にコメントがあった際、投稿をお気に入り登録してる人だけに通知メールを送りたいです。
以下の様なモデルがあります。
model.py
python
1#投稿 2class Post(models.Model): 3 user = models.ForeignKey(User, on_delete=models.CASCADE) 4 title = models.CharField(max_length=255) 5 content = models.TextField() 6 7#お気に入り 8class Like(models.Model): 9 user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='like_user') 10 post = models.ForeignKey(Post, on_delete=models.CASCADE) 11 date_created = models.DateTimeField(auto_now_add=True) 12 13#コメント 14class Comment(models.Model): 15 post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments') 16 author = models.ForeignKey(User, on_delete=models.CASCADE) 17 text = models.TextField()
python
1class User(AbstractBaseUser, PermissionsMixin): 2 username = models.CharField(verbose_name='名前',max_length=50) 3 email = models.EmailField(_('email address'), unique=True)
handlers.pyを作成し、ユーザー全員にコメント通知メールを送るところまでは出来たのですが、お気に入りに登録したユーザーだけに通知メールを送る事が出来ずに四苦八苦しています。
handlers.py
python
1from django.conf import settings 2from django.core.mail import send_mail 3from django.db.models.signals import post_save 4from django.dispatch import receiver 5from post.models import Comment, Post, Like 6from register.models import User 7 8@receiver(post_save, sender=Comment) 9def comment_create_notification(sender, instance, created, **kwargs): 10 """コメントが投稿されたら管理者にメールで通知する""" 11 12 user = User.objects.all() 13 if created: 14 subject = "コメント通知" 15 message = "お気に入り登録した投稿にコメントがつきました。" 16 from_email = settings.DEFAULT_FROM_EMAIL 17 for u in user: 18 recipient_list = [u.email] 19 send_mail(subject, message, from_email, recipient_list)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/06/06 00:31
2020/06/06 00:57 編集
退会済みユーザー
2020/06/06 01:17
2020/06/06 01:22
退会済みユーザー
2020/06/06 01:27
2020/06/06 01:42
退会済みユーザー
2020/06/06 01:49
退会済みユーザー
2020/06/06 02:23
2020/06/06 02:44
退会済みユーザー
2020/06/06 02:46
退会済みユーザー
2020/06/06 03:00
2020/06/06 03:20
退会済みユーザー
2020/06/06 03:23
退会済みユーザー
2020/06/06 06:44
2020/06/06 07:50
退会済みユーザー
2020/06/06 08:04
2020/06/06 08:18