<分区>
Possible Duplicate:
get python class parent(s)
我有一个:
class Animal(models.Model):
pass
class Cat(Aminal):
pass
class StreetCat(Cat):
pass
如何找出模型继承自的模型?
<分区>
Possible Duplicate:
get python class parent(s)
我有一个:
class Animal(models.Model):
pass
class Cat(Aminal):
pass
class StreetCat(Cat):
pass
如何找出模型继承自的模型?
最佳答案
可以通过__base__
获取python中的直接父类(super class)
>>> StreetCat.__base__ is Cat
>>> True
如果您有多个基类 class Foo(A, B)
,__bases__
将为您提供所有父类的元组
感谢 OP 的更新:以下 django 方法不检索抽象基类,因为从技术上讲,这些是用于存储将每个继承模型与其父模型联系起来的外键的内部使用方法。注意!
Django 还间接地为继承的模型提供了一些帮助器,它们是纯 python 方法遍历父类(super class)的快捷方式。
>>> 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
关于python - Django:如何获取模型继承的模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5278316/
相关文章:
python - 有没有办法为基于平台的 Python 应用程序提供条件 requirements.txt 文件?
python - 如何按时间对项目(从文件中读取)进行分组和计数?
python - Django 休息 : serializer field that isn't a model field
python - PyVmomi 添加网卡与未连接的 dvs ('config.distributedVirtualSwitch' 未设置)
python - Google App Engine 计数器
Python: "import JSON... json.loads(request.body)"2.7->3.4
Elastic Beanstalk 上的 Django "requirements.txt"无效
python - 模块未找到错误: No module named 'django.config' using celery and rabbitmq