0

1つのモデルに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
4

1 に答える 1

1

できません。それらが2つの異なる署名を持っている場合でも、Pythonで同じ名前の2つの関数を持つことはできません(そしてあなたの場合、それらはほとんど署名を持っていません)。

次のいずれかを実行できます。

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

または2つの異なる名前:

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

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

または、2つを混在させることができます- save、、save_aおよびsave_b

于 2013-02-21T19:27:03.137 に答える