Обратный поиск для унаследованных моделей в 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?