Как применить фильтрацию после сериализации с помощью Filter backend в DRF?

Для контекста я объясню текущий поток: Модель Document имеет поле document_signing_status, которое имеет 2 возможных значения: SIGNED/NOT_SIGNED. Однако, в сериализаторе я переопределяю это поле, имея пользовательский SerializerMethodField(), который применяет некоторую модификацию и вместо возвращения 2 значений может возвращать 4: "EXPIRED", "WAITING_FOR_ME", "WAITING_FOR_OTHERS", "SIGNED"

Я не хочу хранить эти значения на уровне базы данных, но мне нужно применить фильтрацию.

Сейчас я использую filters.FilterSet, но он использует QuerySet, поэтому я не могу просто указать поля фильтрации и передать "EXPIRED", поскольку в поле модели есть только "SIGNED" или "NOT_SIGNED"

Как я должен подойти к этому вопросу? Я думал о том, чтобы просмотреть набор запросов и применить модификации для этого поля, чтобы иметь один из возможных 4 вариантов, вместо 2, но не уверен, что это правильное решение и возможно ли это вообще.

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