小编slu*_*rms的帖子

如何在django rest框架中对过滤器进行分页

我目前有一个API视图设置如下:

class WeatherObservationSerializer(serializers.ModelSerializer):
    dew_point = serializers.Field(source='dew_point')
    wind_gust = serializers.Field(source='get_wind_gust')

    class Meta:
        model = WeatherObservation
        fields = ('id', 'station', 'temperature', 'pressure', 'humidity',
                  'wind_direction', 'wind_speed', 'rainfall', 'date',
                  'dew_point', 'wind_gust')

class WeatherObservationList(generics.ListCreateAPIView):
    model = WeatherObservation
    serializer_class = WeatherObservationSerializer
    permission_classes = (permissions.IsAuthenticatedOrReadOnly,)

    def get_queryset(self):
        queryset = WeatherObservation.objects.all()
        min_date = self.request.QUERY_PARAMS.get('min_date', None)
        station = self.request.QUERY_PARAMS.get('station', None)
        if min_date is not None:
            queryset = queryset.filter(date__gte=min_date)
        if station is not None:
            queryset = queryset.filter(station=station)
        return queryset
Run Code Online (Sandbox Code Playgroud)

我的settings.py包含:REST_FRAMEWORK = {'PAGINATE_BY':50,'PAGINATE_BY_PARAM':'page'}

当我向API发出请求时:/ api/weather/observation /?station = 2&page = …

django django-rest-framework

9
推荐指数
1
解决办法
6291
查看次数

标签 统计

django ×1

django-rest-framework ×1