Фильтр по нескольким годам в DRF

Так я пытаюсь сделать фильтр по году и поэтому он может использовать несколько значений, как это

filter?year=2000,2021

И с этим я должен получить все объекты с годом 2000 или 2021

Мой filter.py

from django_filters import(
                            BaseInFilter,
                            NumberFilter,
                            FilterSet,
                            CharFilter,
    ) 
from .models import Research

class YearInFilter(BaseInFilter, NumberFilter):
    pass

class ResarchFilter(FilterSet):
    year = YearInFilter(field_name='date', lookup_expr='year')
    category = CharFilter(field_name='category', lookup_expr='iexact')
    
    class Meta:
        model = Research
        fields = ['date', 'category']

Это выглядит почти как пример из django-filter. Но когда я пытаюсь использовать его, я получаю ошибку Field 'None' expected a number but got [Decimal('2000'), Decimal('2021')].

Так что же здесь не так? Почему здесь десятичная дробь? Почему это не число? И как заставить его работать так, как ожидалось?

Если вам нужны все данные между этими двумя годами, используйте range. если вам нужны только те данные, которые существуют в эти годы, используйте in

пример:

year = YearInFilter(field_name='date', lookup_expr='range')
year = YearInFilter(field_name='date', lookup_expr='in')

Пожалуйста проверьте, как именно вы можете применить эти фильтры в Django_filter

Желаю удачи

Вернуться на верх