首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在添加新内容时,筛选并获取所有带作者其他内容的客户发送通知。

在添加新内容时,筛选并获取所有带作者其他内容的客户发送通知。
EN

Stack Overflow用户
提问于 2022-10-19 10:35:44
回答 1查看 22关注 0票数 0

当添加新内容时,我希望筛选并获得所有带来作者其他内容的客户发送通知--我知道,这在queryset上工作,但我对如何做到这一点感到困惑。如果有谁愿意分享。

这是我的模特

内容:

代码语言:javascript
复制
 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)

抹灰含量

代码语言:javascript
复制
 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

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2022-10-20 10:57:57

因此,只要创建了这样的内容,您就可以使用一个信号向用户发送电子邮件:

代码语言:javascript
复制
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])
        return
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74123878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档