Django REST, как отобразить каждые 5 элементов в ответе? - PullRequest
0 голосов
/ 15 апреля 2020

Теперь сериализатор отображает все данные из модели CoinCosts в ответ (цена, временная метка), но нужен только каждый 5 элемент, как это сделать? Спасибо

Мне нужно что-то вроде Entry.objects.all () [:: 5], но я не знаю, как это сделать с моим кодом.

Мой код сейчас:

serializers.py

class CoinCostsSerializer(serializers.ModelSerializer):
class Meta:
    fields = ('price', 'timestamp')
    model = CoinCosts

class CoinSerializer(serializers.ModelSerializer):
    class Meta:
        fields = ('symbol', 'crr', 'costs')
        model = Coins
    costs = CoinCostsSerializer(source='filtered_coincosts', many=True)

views.py

class DateTimeGteFilter(filters.IsoDateTimeFilter):
    def filter(self, qs, value):
        if value != None:
            return qs.prefetch_related(Prefetch('coincosts_set', to_attr='filtered_coincosts', queryset=CoinCosts.objects.filter(timestamp__gte=value)
                )
            )
        else:
            return qs

class CoinCostFilterSet(filters.FilterSet):
    timestamp = DateTimeGteFilter()

    class Meta:
        model = Coins
        fields = {
            'symbol': ['exact'],
        }

1 Ответ

0 голосов
/ 16 апреля 2020

Вы можете использовать , попробовать и , за исключением , как это показано в views.py в вашем def:

try:
    obj = Entry.objects.all()[::5]
except IndexError:
    obj = None
...