2功能save()到一个模型

时间:2013-02-21 19:21:34

标签: python django

我需要为一个模型添加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 个答案:

答案 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

或者你可以混合两者 - 拥有savesave_asave_b