如何从父类获取所有子模型?例如:
class Device(PolymorphicModel):
.....
class Mobile(Device):
.....
class Computer(Device):
.....
我想从设备模型中获取其所有后代:Mobile,Computer作为类而不是实例。
谢谢。
如何从父类获取所有子模型?例如:
class Device(PolymorphicModel):
.....
class Mobile(Device):
.....
class Computer(Device):
.....
我想从设备模型中获取其所有后代:Mobile,Computer作为类而不是实例。
谢谢。
class.__subclasses__()
[Python-doc]方法来获取直接的子类:>>> Device.__subclasses__()
[<class 'Mobile'>, <class 'Computer'>]
def get_descendants(klass):
gen = { klass }
desc = set()
while gen:
gen = { skls for kls in gen for skls in kls.__subclasses__() }
desc.update(gen)
return desc
def get_descendants(*klass):
gen = { *klass }
desc = set()
while gen:
gen = { skls for kls in gen for skls in kls.__subclasses__() }
desc.update(gen)
return desc
set()
。