Django继承了Field Access

时间:2010-04-21 12:39:19

标签: django

从最新版本开始,如果该变量是Field实例,Django不允许子类具有与其超类中的变量同名的变量。

我需要一个子类来修改这个变量,我称之为“部门”。调用我的类super和sub,我需要sub来修改它从super继承的部门变量。如果我重新声明它,Django会抛出一个字段错误。当然,如果我不这样做,部门不在重新分配的范围内。如果super没有部门,我会收到数据库错误。当我尝试重写 init

时,我会遇到奇怪的行为
def __init__(self):
    super(theSuperClass, self).__init__()

TypeError:super(type,obj):obj必须是

类型的实例或子类型

任何人都知道如何做到这一点?

1 个答案:

答案 0 :(得分:2)

super的第一个参数必须是当前类(即子类),而不是超类。

此外,您应该传递传递给__init__的参数。所以它应该是:

class MySubClass(MySuperClass):
    def __init__(self, *args, **kwargs):
        super(MySubClass, self).__init__(*args, **kwargs)