Использование `issubclass ()` с моделями Django

У меня есть несколько моделей 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?

Пожалуйста, не предлагайте утиную печать в качестве решения. В этом случае я действительно хотел бы знать, существует ли отношение подкласса.

6
задан Andrea 27 October 2011 в 10:45
поделиться