/ / Filtrage de la structure Django REST à l'aide de l'opérateur IN - django, django-rest-framework

Filtrage de la structure Django REST à l'aide de l'opérateur IN - django, django-rest-framework

J'ai essentiellement besoin de quelque chose comme /?status=[active,processed] ou /?status=active,processed

Mon réglage actuel est: "DEFAULT_FILTER_BACKENDS": ("rest_framework.filters.DjangoFilterBackend",) et il "filtre seulement une valeur correctement (/?status=active)

Toute aide serait appréciée.

Réponses:

2 pour la réponse № 1

Je pense qu'il n'y a pas de fonctionnalité intégrée pour cela. Mais vous pouvez implémenter un filtre personnalisé pour le faire. Ce filtre personnalisé que vous pouvez utiliser dans votre jeu de filtres.

import django_filters as df

class InListFilter(df.Filter):
"""
Expects a comma separated list
filters values in list
"""
def filter(self, qs, value):
if value:
return qs.filter(**{self.name+"__in": value.split(",")})
return qs

class MyFilterSet(df.FilterSet):
status = InListFilter(name="status")