DRF filterset_class зависит от вложенных сериализаторов

У меня есть модель, которая имеет два ForeignKeys к полиморфным моделям, каждая из которых имеет свои дочерние модели. Как я могу фильтровать поля этих дочерних моделей из одного представления?

class Shape(PolymorphicModel):
    dimensions = ...


class CircularShape(Shape):
    radius = ...


class TriangularShape(Shape):
    arm_length = ...


class Color(PolymorphicModel):
    alpha = ...


color RGBColor(Color):
    r, g, b = ...


class CMYKColor(Color):
    c, m, y, k = ...


class PhysicalObject(Model):
    shape = ForeignKey(Shape)
    color = ForeignKey(Color)


class PhysicalObjectViewSet(ModelViewSet):
    # it should allow me to filter through both Shape and Color subclasses' fields
    # for example color__r__gte=127&shape__radius__gte=5
    filterset_class = ...
Вернуться на верх