如何在创建另一个模型实例时删除模型实例并修改用户配置文件?

时间:2017-08-30 19:52:01

标签: python django django-models

我开辟了一个网站,在那里你可以看到不同的比赛并投票给你认为会赢的球队。

当比赛结束时,我想在django管理员中创建一个匹配项和匹配获胜者的实例,删除所有投票并为每个投票给获胜团队的用户添加积分。

这些是我的模特:

class Prognostic(models.Model):
    match = models.IntegerField()
    user = models.IntegerField()
    vote = models.CharField(max_length = 100)

    def __str__(self):
        return self.vote


class MatchResult(models.Model):
    match = models.ForeignKey("MatchOpponents")
    winner = models.ForeignKey("TeamGGC")

    @receiver(post_save, sender=Prognostic)
    def voteRepartitionPoints(sender, instance, **kwargs):
        profil = apps.get_model("userMembers", "Profil")
        for prognostic in Prognostic().object.filter(match = match_id):
            if prognostic.vote == winner:
                user = profil.object.get(user_id = prog.user)
                user.nbGGCPoints += 50
                user.save()
            prognostic.delete()

    def __int__(self):
        return self.match

但是当我这样做时,没有任何反应。要让它发挥作用需要什么?

1 个答案:

答案 0 :(得分:0)

Yoc可以创建投票模型,然后继续。

class Vote(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    value = models.BooleanField(default=True)
    match = models.ForeignKey("MatchOpponents")

    class Meta:
        unique_together = (('user', 'match'),)