一旦系统检测到您已经邀请2位用户,您的个人资料将自动保存在毕业生列表中
请看这张图片,例如:
这是毕业生名单表。
如图所示,Joe Dio已经邀请了2个用户(miro和justin),(您可以在Sponsor用户中看到)] >
我希望您能帮助我使用django信号来解决它,预先感谢:)
我希望我做的例子能使您理解我想要得到的东西
这是我的模型。py
这是@AKS先生的答案>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}'
UPDATE
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)
它没有用。
[一旦系统检测到您已经邀请了2个用户,您的个人资料将自动保存在毕业生列表中,请参见此图片,例如:这是毕业生列表。可以的...
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
。