obecnie mam konfiguracji widoku interfejsu API, co następuje:Jak paginate z filtrami w ramach odpoczynku Django
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
My settings.py
zawiera: REST_FRAMEWORK = { 'PAGINATE_BY': 50, 'PAGINATE_BY_PARAM': ' strona” }
Kiedy złożyć wniosek do API tak:/api/pogoda/obserwacje/stacja = 2 & strona = 2 & min_date = 14.03.2013 I tylko wrócić dwa wyniki?. Jeśli jest na stronie 3, 3 wyniki i tak dalej. Czy coś, co robię źle, powoduje ten problem?
Pozdrawiam.
Hahah, facepalm. Pomyślałem, że to nazwa parametru, którego użyję do numerowania stron. Dzięki! – slurms
Tak, to raczej słabo nazwane. Cieszę się, że mogłem pomóc! – Hamms