当添加新内容时,我希望筛选并获得所有带来作者其他内容的客户发送通知--我知道,这在queryset上工作,但我对如何做到这一点感到困惑。如果有谁愿意分享。
这是我的模特
内容:
class Content(models.Model):
title = models.CharField(max_length=1000)
Author = models.ForeignKey('User',on_delete=models.CASCADE)
slug = AutoSlugField(populate_from='title', unique=True, null=False)
cover = models.ImageField(upload_to='course', default='nocover.jpg')
catogary = models.ForeignKey(Category, on_delete=models.RESTRICT)
description = models.TextField(max_length=2000, null=True, blank=True)
requirements = models.TextField()
price = models.FloatField()
language = models.ForeignKey(Language, on_delete=models.RESTRICT)抹灰含量
class PurchasedContent(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
course = models.ForeignKey(Course, blank=True, related_name='course')我希望所有的客户,电子邮件谁带来了一个特定的作者课程,作者将认证,同时添加。我们会让作者成为request.user
以下是django rest框架中的示例ListCreateAPIView
class createlistcontentview(generics.ListCreateAPIView):
permission_classes = [TokenHasReadWriteScope]
queryset = Content.objects.all()
serializer_class = ContentSerializer
def perform_create(self, serializer):
#Here I want to get a list of mails to create a Function that sends mall
serializer.save(author=self.request.user)发布于 2022-10-20 10:57:57
因此,只要创建了这样的内容,您就可以使用一个信号向用户发送电子邮件:
from django.dispatch import receiver
# models.py
@receiver(models.signals.post_save, sender=Content)
def send_email(sender, instance:Content, created, **kwargs):
if created:
# import and use your email helper here
# since the related name you chose for the purchased_content course is a little confusing I changed it to `purchased_content`
purchases = instance.course.purchased_content.all()
send_email(users=[user.email for user in purchases])
returnhttps://stackoverflow.com/questions/74123878
复制相似问题