Джанго не может обновить модель - PullRequest
0 голосов
/ 13 марта 2010

У меня есть следующая функция, чтобы переопределить функцию сохранения по умолчанию в соответствии с моделью

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)

Я могу сохранить модель матча просто отлично, но модель Team, похоже, не обновляется вообще, и не выдается никакой ошибки. я что-то здесь упускаю?

Ответы [ 2 ]

1 голос
/ 01 апреля 2010

добавить это в ваш 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()
0 голосов
/ 13 марта 2010

Нет ничего плохого в вашем методе. Поэтому применяются обычные приемы отладки: вы уверены, что метод на самом деле вызывается? Вы уверены, что объект Match имеет Match_Status либо F, либо D? Для уверенности вставьте несколько операторов печати. ​​

...