Я пытаюсь создать фильтр диапазона значений в моем приложении, используя django-filters.В моей базе данных есть отдельные поля с возрастом (которые были созданы с помощью models.IntegerField).
Я хочу добавить флажок, как показано ниже: ![enter image description here](https://i.stack.imgur.com/TDR4H.jpg)
Все почти готово, но я не знаю, как связаться с базой данных.Я прочитал документацию о ' Настройка фильтрации с помощью Filter.method' и о том, как использовать RangeFilter , но я все еще не знаю, как создать правильное условие.Как я могу сделать это в моей стилизации (как создать условие для моих «требований =?»), Который возвращает значение, например, между 20-30?
У нас есть представление в документации:
f = F({'price_min': '5', 'price_max': '15'}, queryset=qs)
Что такое 'f'?где в этой ситуации условие достигает базы данных?
Мои filters.py
from .models import Promoters
import django_filters
class PromotersFilter(django_filters.FilterSet):
CHOICES = (
('age_option1', '0-20'),
('age_option2', '21-30'),
('age_option3', '31-40'),
('age_option4', '41-50'),
('age_option5', '50+'),
)
age_list = django_filters.ChoiceFilter(label='Age list', choices=CHOICES, method='filter_by_order')
class Meta:
model = Promoters
fields = ['age', 'profession', 'sex', 'city']
def filter_by_order(self, queryset, name, value):
requirements = **??**
return queryset.order_by(requirements)