Код: Выделить всё
class FilterData(TypedDict):
title: str
min_price: int
max_price: int
freeDelivery: bool
available: bool
tags: list[int | None]
Итак, как лучше всего изменить мой фильтрующий запрос в зависимости от по входным параметрам?
Код: Выделить всё
ifКод: Выделить всё
if not tags:
result = Product.objects.filter(
Q(
price__gte=filter_data["min_price"],
price__lte=filter_data["max_price"],
)
& Q(freeDelivery=filter_data["freeDelivery"])
& Q(available=filter_data["available"])
& Q(title__icontains=filter_data["title"]))
).order_by(order_field)
else:
result = Product.objects.filter(
Q(
price__gte=filter_data["min_price"],
price__lte=filter_data["max_price"],
)
& Q(freeDelivery=filter_data["freeDelivery"])
& Q(available=filter_data["available"])
& Q(title__icontains=filter_data["title"])
& Q(tags__contains=[1, 2, 3])
).order_by(order_field)
Подробнее здесь: https://stackoverflow.com/questions/785 ... parameters