У меня есть несколько моделей Django, скажем
class Foo(models.Model):
class Meta:
abstract = True
class Bar(Foo)
pass
Я хотел бы найти все модели, унаследованные от Foo, в чтобы выполнить с ними задачу. Это должно быть легко, например
from django.db import models
from myapp.models import Foo
for model in models.get_models():
if issubclass(model, Foo):
do_something()
Увы, это не работает, поскольку issubclass (Bar, Foo)
сообщает False
, вероятно, в результате внутренней работы метакласса Django. который инициализирует модели.
Есть ли способ проверить, является ли модель Django потомком абстрактной модели Django?
Пожалуйста, не предлагайте утиную печать в качестве решения. В этом случае я действительно хотел бы знать, существует ли отношение подкласса.