【问题标题】:Subclass of Django Model Not Accessible from Superclass无法从超类访问 Django 模型的子类
【发布时间】:2015-08-27 19:21:16
【问题描述】:

我正在尝试在 Django 中创建一个继承模型,如下所示。我应该能够调用,例如 superclass= Superclass(),我应该能够调用 superclass.subclass,并访问必要的字段。当我这样做时,我被告知“预期有 1 个参数,给出了 8 个参数”:知道我哪里出错了吗?

class Superclass(models.Model):
        pass

class Subclass(Superclass):
        def __init__(self):
                super(Subclass, self).__init__()

【问题讨论】:

  • 您的 super 调用也不起作用,因为您只能将类用作 super 的第一个参数。 IE。 super(Subclass, self) 不是 super(Group, self)
  • 是的 - 这是问题中的错误,但不是问题。
  • 另外,无论如何你都无法做到superclass.subclass - 继承是一种“is-a”关系,而不是“has-a”。

标签: python django inheritance model


【解决方案1】:

这里的问题是子类构造函数和超类构造函数中需要*args**kwargs。这两个字段将接受参数和对象:其中包括超类的字段信息以及对象管理器等。这应该可以解决问题:

class Subclass(Superclass):
    def __init__(self, *args, **kwargs):
            super(Subclass, self).__init__(*args, **kwargs)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-24
    • 1970-01-01
    • 2011-08-16
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    相关资源
    最近更新 更多