2013-02-21 41 views
0

我需要添加2個函數save()到一個模型。怎麼做?2函數save()到一個模型

def save(self, *args, **kwargs): 
    self.slug = slugify(self.title) 
    super(Property, self).save(*args, **kwargs) 

def save(self, *args, **kwargs): 
    self.key = ''.join(random.choice(string.letters) for i in xrange(132)) 
    .......... 
    return self 
+1

爲什麼你需要這個?我懷疑你正在嘗試做一些與實際儲蓄無關的事情。 – 2013-02-21 20:51:57

回答

1

你不行。即使他們有兩個不同的簽名,也不可能在Python中有兩個同名的函數(在你的情況下他們幾乎沒有簽名)。

你可以這樣做:

def save(self, which_save, *args, **kwargs): 
    if(which_save == 1): 
     do_something() 
    elif(which_save == 2): 
     do_something_else() 
    else: 
     raise ValueError 

或兩個不同的名字:

def save_a(self, *args, **kwargs): 
    # some code 

def save_b(self, *args, **kwargs): 
    # some other code 

,也可以混合使用這兩種 - 有savesave_asave_b

+0

好的。我有save_a(..)和save_b(..)。如何運行?現在不能正常工作 – user2096122 2013-02-21 19:36:36

+0

如果你使用Django的管理員,它不會工作,因爲它可能試圖調用'.save()'。但是從你的代碼你應該可以調用這兩個保存(不要忘記調用'super(Property,self).save')。 – dmg 2013-02-21 19:39:25

相關問題