如何删除模型实例并创建另一个模型实例时修改用户资料?

问题描述:

我devoleping一个网站,你可以看到不同的比赛和投票为球队你认为会获胜。如何删除模型实例并创建另一个模型实例时修改用户资料?

当比赛结束时,我想在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 

但是,当我做到这一点,没有任何反应。什么是需要这个工作?

+0

请修正你的粘贴代码 – Wasi

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'),) 
+0

我要创建两个先例车型额外的投票模式缩进? 并有可能做什么,我是想? 感谢您的回答! – MagiPrince

+0

@MagiPrince不,你不需要创建一个额外的模型,你可以取代你的第一个模型与预后投票模式。 –

+0

我尝试你向我求婚的代码,但实际上是因为我填补后的数据模型投票从我的模板并没有工作。你认为有可能通过管理功能来做我想做的事吗? – MagiPrince