Обратный поиск для унаследованных моделей в Django

У меня есть несколько определений моделей Django. Родительский класс содержит внешний ключ к другому классу, и есть несколько классов моделей, которые наследуются от родительского.

class Foo(models.Model):
    pass

class Parent(models.Model):
    foreign_key = models.ForeignKey(Foo, on_delete=models.CASCADE)

class Child1(Parent):
    pass

class Child2(Parent):
    pass

Для объекта типа Foo я пытаюсь выполнить обратный поиск, чтобы найти все объекты, которые имеют тип Parent или подкласс Parent и которые связаны с этим конкретным объектом. Однако, если я использую foo.parent_set, я получу только объекты класса Parent, которые связаны с foo, в то время как если я попытаюсь сделать это с любым из дочерних классов, произойдет ошибка, потому что они не имеют прямой связи с классом Foo.

Есть ли способ получить список всех объектов типа Parent или наследующихся от Parent, которые содержат внешний ключ к объекту типа Foo?

Вернуться на верх