Django -filter Как написать фильтры с DjangoFilterBackend в запросе POST? - PullRequest
0 голосов
/ 02 мая 2020

Я написал собственный фильтр, используя пакет django -filter, как указано в документации DRF здесь: https://www.django-rest-framework.org/api-guide/filtering/#djangofilterbackend

Вот мой код:

class GeoFilter(filters.FilterSet):
    village_name = filters.CharFilter(field_name='village_name', lookup_expr='icontains', label = 'village_name')
    country_id = filters.NumberFilter(field_name='block__district__state__country', lookup_expr='exact', label = 'country_id')
    country_name = filters.CharFilter(field_name='block__district__state__country__country_name', lookup_expr='icontains', label = 'country_name')

    class Meta:
        model = Village
        fields = ['village_name', 'country_id', 'country_name']


class VillagesViewSet(viewsets.ModelViewSet):
    ''' 
    Villages list with django-filters 
    '''

    authentication_classes = [TokenAuthentication]
    permissions_classes =[IsAuthenticated]
    serializer_class = VillageSerializer
    queryset = Village.objects.get_queryset().order_by('id')
    filter_backends = [filters.DjangoFilterBackend]
    filterset_class = GeoFilter 

Это запрос GET. Я хочу писать только запросы POST с фильтрацией, используя DjangoFilterBackend. Я пытаюсь выяснить, возможно ли это. В настоящее время я использую ORM-фильтр, но я хочу использовать django -фильтр, так как я считаю его более подходящим для фильтрации.

...