2010-03-13 61 views
0

我有以下功能覆蓋默認的模型匹配的Django無法更新模型

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) 

我能夠挽救賽模型得很好,但團隊模型似乎並沒有被更新保存功能所有並沒有錯誤被拋出。我在這裏錯過了一些東西嗎?

+0

添加爲丹尼爾說,沒有什麼是跳出來的錯誤,但我們真的不知道你的代碼作爲一個整體東西。如果你能提供一個完整簡化的例子,那將是最好的。請參閱:http://www.yoda.arachsys.com/csharp/complete.html(Jon在C#的上下文中寫道,但它適用於任何語言。) – 2010-03-13 09:11:49

回答

1

在烏爾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

你的方法沒有什麼明顯的錯誤。所以通常的調試技巧適用:您確定該方法實際上被調用嗎?你確定Match對象具有F或D的Match_Status嗎?確定一些印刷說明。