Python Django无法更新模型

Python Django无法更新模型,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我有以下函数来覆盖模型匹配中的默认保存函数 def save(self, *args, **kwargs): if self.Match_Status == "F": Team.objects.filter(pk=self.Team_one.id).update(Played=F('Played')+1) Team.objects.filter(pk=self.Team_two.id).update(Played=F('Played')+1)

我有以下函数来覆盖模型匹配中的默认保存函数

def save(self, *args, **kwargs):
   if self.Match_Status == "F":
        Team.objects.filter(pk=self.Team_one.id).update(Played=F('Played')+1)
        Team.objects.filter(pk=self.Team_two.id).update(Played=F('Played')+1)
        if self.Winner !="":   
          Team.objects.filter(pk=self.Winner.id).update(Win=F('Win')+1, Points=F('Points')+3)
        else:
            return
   if self.Match_Status == "D":
        Team.objects.filter(pk=self.Team_one.id).update(Played=F('Played')+1, Draw = F('Draw')+1, Points=F('Points')+1)
      Team.objects.filter(pk=self.Team_two.id).update(Played=F('Played')+1, Draw = F('Draw')+1, Points=F('Points')+1)
   super(Match, self).save(*args, **kwargs)

我可以很好地保存比赛模型,但团队模型似乎根本没有更新,也没有抛出错误。我是不是错过了什么

你的方法没有明显的问题。所以通常的调试技巧适用:您确定该方法实际上正在被调用吗?您确定Match对象的Match_状态为F或D吗?放入一些打印语句以确保正确。

将其添加到ur admin.py中

def save_model(self, request ,obj ,form,change):
   if obj.Match_Status == "F":
    Team.objects.filter(pk=obj.Team_one.id).update(Played=F('Played')+1)
    Team.objects.filter(pk=obj.Team_two.id).update(Played=F('Played')+1)
    if obj.Winner !="":   
      Team.objects.filter(pk=obj.Winner.id).update(Win=F('Win')+1, Points=F('Points')+3)
    else:
        return
     if obj.Match_Status == "D":
    Team.objects.filter(pk=obj.Team_one.id).update(Played=F('Played')+1, Draw = F('Draw')+1, Points=F('Points')+1)
      Team.objects.filter(pk=obj.Team_two.id).update(Played=F('Played')+1, Draw = F('Draw')+1, Points=F('Points')+1)
     obj.save()

正如Daniel所说,没有什么会突然出错,但我们确实对您的代码整体一无所知。最好能提供一个完整的简化示例。请看:(乔恩在C#的上下文中写道,但它适用于任何语言。)