Задать вопрос
@Pythonist

Django Rest Filterset — как фильтровать вложенный сериализатор по start и end date?

Здравствуйте, есть такой код фильтра ,который фильтрует вложенный сериализатор по начальной дате. Но как туда вклинить конечную дату? Делал многое по докам, не помогло. Спасибо

Код
filters.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


serializers

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

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

    class Meta:
        model = Coins
        fields = {
            'symbol': ['exact'],
        }
  • Вопрос задан
  • 274 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы