我需要为一个模型添加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
答案 0 :(得分: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
或者你可以混合两者 - 拥有save
,save_a
和save_b
。