2010-02-02 43 views
1

首先我是一个蟒蛇新手。Python:如何从两个类继承?

我在玩Django,我试图扩展一些类。

现在,我在这样的情况:

我有一个新的类

customBaseModelAdmin(admin.options.BaseModelAdmin): 
    #override a method of BaseModelAdmin 

,我想要写另一个类

customModelAdmin(customBaseModelAdmin): 

这显然继承customBaseModelAdmin,但有标准ModelAdmin的相同方法。 但是,由于标准ModelAdmin继承了标准BaseModelAdmin,我该怎么办?

我试图定义

class customModelAdmin(customBaseModelAdmin, admin.options.ModelAdmin): 

,但它不工作。

你有什么建议吗?

感谢,

乔瓦尼

+3

为什么它不工作?如果您遇到错误,请将其发布。 – ebo 2010-02-02 21:43:40

回答

2

请让customBaseModelAdmin继承自ModelAdmin。您仍然可以覆盖BaseModelAdmin中的方法。

但当然也可能是ModelAdmin也覆盖了这种方法。我会看看这些类的源代码,以真正知道那里发生了什么。

+0

我已经看了源代码...我认为你的建议是正确的,但我必须找到如何以正确的方式覆盖.... 谢谢。 – 2010-02-02 22:03:14

+0

完成!非常感谢你! – 2010-02-03 16:25:28

2

为什么不只是customBaseModelAdmin子类的ModelAdmin?

+0

,因为我想保留ModelAdmin的原始版本(即Django提供的版本)。 – 2010-02-02 21:46:22

+1

@Giovanni Di Milia:子类化并不意味着原始类被破坏;) – 2010-02-02 21:49:07

+0

是的,但是我怎么能为ModelBrm for customBaseModelAdmin继承?我的意思是......你能举个例子吗? – 2010-02-02 22:06:05

0

你不喜欢这样:

class customModelAdmin(customBaseModelAdmin): 
    etc