Я создаю API-интерфейс фильтра, но независимо от того, какой фильтр я применяю, он не дает мне никакого результата.
class filter_dataset(ListCreateAPIView):
filter_class = ProductFilter
serializer_class = AdjustDatasetSerializers
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('revenue', 'spend', 'OS', 'date')
def get_queryset(self):
dataset = Dataset.objects.all()
return dataset
def get(self, request):
dataset = self.get_queryset()
serializer = self.serializer_class(dataset, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
модели:
from django.db import models
class Dataset(models.Model):
date = models.DateTimeField(max_length=255,auto_now_add=True)
channel = models.CharField(max_length=255,null=True, blank=True)
OS = models.CharField(max_length=255,null=True, blank=True)
impressions = models.CharField(max_length=255,null=True, blank=True)
clicks = models.CharField(max_length=255,null=True, blank=True)
installs = models.CharField(max_length=255,null=True, blank=True)
spend = models.CharField(max_length=255,null=True, blank=True)
revenue = models.CharField(max_length=255,null=True, blank=True)
Класс фильтра:
class ProductFilter(filters.FilterSet):
revenue = filters.NumberFilter(field_name="revenue")
spend = filters.NumberFilter(field_name="spend")
OS = filters.CharFilter(field_name='OS', lookup_expr='OS__exact')
date = filters.DateFromToRangeFilter(field_name='date')
class Meta:
model = Dataset
fields = ['revenue', 'spend', 'OS', 'date']
На django отображаются поля фильтра остальной структуры, но независимо от того, что вы вводите в поле, это не дает никаких результатов. Все были показаны все данные. Я застрял в этом, потребуется любая помощь.