Django是父类中“被识别”的方法覆盖吗?

时间:2012-09-22 12:07:17

标签: django methods save override slug

我对python和django比较陌生,我只是试图了解方法覆盖以及方法如何影响方法在父类中的工作方式。

所以我有这个父类alá:

class Parent():

    def save(self):
        if not self.slug:
            self.slug = self.get_slug()

    def get_slug(self):
        return slugify(self)

和我将要覆盖get_slug方法的子类,因为我想使用自己的unicode方法使用slugify(我是否正确通过调用slugify(self)他自动使用unicode方法?)。

class Child(Parent):

    def __unicode__(self):
        return u'%s %s' %(self.title, self.season)

    def get_slug(self):
        return slugify(self)

我不确定的是save方法如何适用于child的实例。 在我创建一个新的子实例后(例如在管理区域中),继承的save方法是否只调用父类中的get_slug方法?

我认为save会调用我的覆盖get_slug方法而不是原始方法。 也许这完全是显而易见的,但我似乎并不理解它。

因此,当我在模板中使用child.slug时,我得到了父get_slug方法的结果。 只有我使用child.get_slug才能得到正确的结果。

有人可以解释一下继承方法如何与子类中的重写方法进行交互。 提前致谢

0 个答案:

没有答案
相关问题