Search code examples
pythondjango-rest-frameworkdjango-filter

django_filters returns True is not a valid field when filtering through rest api


Got in my model serializer such field like is_favorited and others

is_favorited = serializers.SerializerMethodField()
def get_is_favorited(self, obj):
    user = self.context['request'].user
    if user.is_anonymous:
        return False
    qs = Favorite.objects.filter(user=user, recipe=obj)
    return len(qs) > 0

my model viewset contains

queryset = Recipe.objects.all()
filter_backends = [DjangoFilterBackend]
filterset_fields = (
    'is_favorited',
        )

in Postman i get this bad request when trying to filter by this boolean field enter image description here


Solution

  • decided to use get_queryset in order to filter simple queries.