Django фильтр на основе SerializerMethodField
У меня есть аналогичный код, представленный ниже.
serializer.py
class FooSerailizer(BaseModelSerializer):
value = serializers.SerializerMethodField(read_only=True)
def get_value(self,obj):
# some statement of code
# return statement
class meta:
model = Foo
fields = '__all__'
filters.py
class FooFilter(filters.FilterSet):
class meta:
model = models.Foo
fields = '__all__'
Запрос API - http://127.0.0.1:8000/api/?value=some_value.
Ответ, который я получаю при вызове вышеуказанного API:
{
"value": [
"Select a valid choice. That choice is not one of the available choices."
]
}
Как правильно получить JSON-ответ?
Django не может фильтровать на основе сериализатора, вам придется создать пользовательское поле фильтра в вашем наборе фильтров. Посмотрите https://django-filter.readthedocs.io/en/stable/ref/filters.html.