Django信号post_save()

贾斯汀

系统检测到您已经邀请2位用户后,您的个人资料将自动保存在毕业生列表中

请看这张图片,例如:

在此处输入图片说明

这是毕业生名单表。

在此处输入图片说明

如图所示,Joe Dio已经邀请了2个用户(mirojustin),(您可以在Sponsor用户中看到它

希望您能帮助我使用django信号来解决它,在此先感谢:)

我希望我做的例子能使您理解我想要得到的

这是我的模型

class User(models.Model):
    firstname = models.CharField(max_length=500, null=True,blank=True)
    lastname = models.CharField(max_length=500, null=True, blank=True)
    middlename = models.CharField(max_length=500, null=True, blank=True)

    birthday = models.CharField(max_length=500, null=True, blank=True)
    Email  =  models.CharField(max_length=500,null=True,blank=True)
    Sponsor_User = models.ForeignKey('self', on_delete=models.CASCADE,blank=True, null=True)

class User_GraduateList(models.Model):
    User = models.ForeignKey(User, related_name='+', on_delete=models.CASCADE, blank=True)
    def __str__(self):
        suser = '{0.User}'

更新这是@AKS先生的答案

class User_GraduateList(models.Model):
    User = models.ForeignKey(User, related_name='+', on_delete=models.CASCADE, blank=True)

    @receiver(post_save, sender=User)
    def create_graduates(sender, instance, created, **kwargs):
        sponsor = instance.Sponsor_User
        if created and sponsor:
            if sponsor.user_set.count() >= 2:
                if not User_GraduateList.objects.filter(User=sponsor).exists():
                    User_GraduateList.objects.create(User=sponsor)

它没有工作。

AKS
class User_GraduateList(models.Model):
    User = models.ForeignKey(User, related_name='+', on_delete=models.CASCADE, blank=True)

@receiver(post_save, sender=User)
def create_graduates(sender, instance, created, **kwargs):
    sponsor = instance.Sponsor_User
    if created and sponsor:
        if sponsor.user_set.count() >= 2:
            if not User_GraduateList.objects.filter(User=sponsor).exists():
                User_GraduateList.objects.create(User=sponsor)

出于阅读目的,我嵌套了if条件。如果感觉舒适,可以加入,然后使用and

上面的解决方案基于以下假设:我们仅在创建新用户时才想这样做。如果以后可以设置发起人用户,则created可以从第一个条件中删除支票。

另外,查看模型,我认为最好在User_GraduateListUser模型之间建立一对一的关系

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Django信号post_save更新

来自分类Dev

传递参数Django信号-post_save / pre_save

来自分类Dev

Django从post_save信号访问ManyToMany字段

来自分类Dev

识别Django post_save信号中已更改的字段

来自分类Dev

使用post_save信号在Django模型上模拟方法

来自分类Dev

具有post_save信号的django_mptt模型

来自分类Dev

Django从post_save信号访问ManyToMany字段

来自分类Dev

具有post_save信号的django_mptt模型

来自分类Dev

Django:断开 post_save 信号以避免递归

来自分类Dev

Django:将变量从pre_save传递到post_save信号

来自分类Dev

Django更改使用内联时调用pre_save post_save信号的顺序?

来自分类Dev

将 pre_save 信号更改为 post_save?Django

来自分类Dev

如何将Django post_save信号作为后台进程运行?

来自分类Dev

如何在post_save信号上以Django模型获取当前登录的用户?

来自分类Dev

由post_save信号执行的Django代码在原子事务内发生

来自分类Dev

Django管理命令并将自定义参数发送到post_save信号

来自分类Dev

由post_save信号执行的Django代码在原子事务内发生

来自分类Dev

Django管理命令并将自定义参数发送到post_save信号

来自分类Dev

Python Django 模型信号 Post_Save 查询对象不包含保存的对象

来自分类Dev

在post_save django上发送邮件

来自分类Dev

在post_save信号上获取完整的User对象

来自分类Dev

该行在post_save信号中起什么作用?

来自分类Dev

多对多关系查询在post_save信号上返回空的查询集,但在Django shell中不返回

来自分类Dev

使用 OneToOneField 扩展 Django 的用户模型:当并非每个用户都是 CustomUser 时,适当的 post_save 信号

来自分类Dev

信号 Post_Save 和 Pre_Save 出错:创建和自我!怎么修?

来自分类Dev

Django多对多和post_save处理

来自分类Dev

django post_save导致IntegrityError-重复输入

来自分类Dev

登录时触发带有发送方AUTH_USER_MODEL的post_save信号

来自分类Dev

使用post_save信号或在视图中执行逻辑有什么区别

Related 相关文章

  1. 1

    Django信号post_save更新

  2. 2

    传递参数Django信号-post_save / pre_save

  3. 3

    Django从post_save信号访问ManyToMany字段

  4. 4

    识别Django post_save信号中已更改的字段

  5. 5

    使用post_save信号在Django模型上模拟方法

  6. 6

    具有post_save信号的django_mptt模型

  7. 7

    Django从post_save信号访问ManyToMany字段

  8. 8

    具有post_save信号的django_mptt模型

  9. 9

    Django:断开 post_save 信号以避免递归

  10. 10

    Django:将变量从pre_save传递到post_save信号

  11. 11

    Django更改使用内联时调用pre_save post_save信号的顺序?

  12. 12

    将 pre_save 信号更改为 post_save?Django

  13. 13

    如何将Django post_save信号作为后台进程运行?

  14. 14

    如何在post_save信号上以Django模型获取当前登录的用户?

  15. 15

    由post_save信号执行的Django代码在原子事务内发生

  16. 16

    Django管理命令并将自定义参数发送到post_save信号

  17. 17

    由post_save信号执行的Django代码在原子事务内发生

  18. 18

    Django管理命令并将自定义参数发送到post_save信号

  19. 19

    Python Django 模型信号 Post_Save 查询对象不包含保存的对象

  20. 20

    在post_save django上发送邮件

  21. 21

    在post_save信号上获取完整的User对象

  22. 22

    该行在post_save信号中起什么作用?

  23. 23

    多对多关系查询在post_save信号上返回空的查询集,但在Django shell中不返回

  24. 24

    使用 OneToOneField 扩展 Django 的用户模型:当并非每个用户都是 CustomUser 时,适当的 post_save 信号

  25. 25

    信号 Post_Save 和 Pre_Save 出错:创建和自我!怎么修?

  26. 26

    Django多对多和post_save处理

  27. 27

    django post_save导致IntegrityError-重复输入

  28. 28

    登录时触发带有发送方AUTH_USER_MODEL的post_save信号

  29. 29

    使用post_save信号或在视图中执行逻辑有什么区别

热门标签

归档