我有一个三级模型继承: 现在,我可以像这样复制QuestionNode对象: 但这对RequestContactNode无效,后者是继承的下一级别: 为什么会这样,并且有解决方法吗? ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
可能重复:
获取python类parent(s)
我有一个:
class Animal(models.Model):
pass
class Cat(Aminal):
pass
class StreetCat(Cat):
pass
如何找出模型继承的模型?
你可以通过__base__
获取python中的直接超类
>>> StreetCat.__base__ is Cat
>>> True
如果您有多个基类class Foo(A, B)
__bases__
将为您提供所有父类的元组
感谢OP更新:以下django方法不检索抽象基类,因为从技术上讲,这些是用于存储将每个继承模型绑定到其父项的外键的内部使用方法。 被警告!
Django还间接地为继承模型提供了一些帮助,这些模型是遍历超类的纯python方法的快捷方式。
>>> StreetCat._meta.get_parent_list()
[Out] : Set([Class Animal, Class Cat])
InheritedClass.parents
是所有父项的有序字典,因此如果您需要,以下内容可用于获取最高父项:
>>> StreetCat._meta.parents.keys()[-1]
你也可以使用非django相关的方法,比如
>>> StreetCat.__mro__[-3]
# once you know that BaseModel is an Object, and since all defined models subclass
# the BaseModel, [-3] is the first class that subclasses models.Model
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.