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.

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