10

現在、次のように 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

私のsettings.py内容: REST_FRAMEWORK = { 'PAGINATE_BY': 50, 'PAGINATE_BY_PARAM': 'ページ' }

/api/weather/observations/?station=2&page=2&min_date=2013-3-14 のように API にリクエストすると、2 つの結果しか返されません。ページ 3 の場合は、3 つの結果など。この問題を引き起こしている私が間違っていることはありますか?

乾杯。

4

3 に答える 3

0

filter-and-paginationプラグインを使用します。フィルターとページネーション機能を適切に処理しています

pip install filter-and-pagination

于 2020-05-09T18:11:20.537 に答える