Как выбрать несколько параметров в фильтре Django?

В Django для выборки объектов с несколькими параметрами в фильтре можно использовать метод filter() в сочетании с различными аргументами и операторами, чтобы указать конкретные условия для выборки.

Прежде всего, вы должны импортировать модель, с которой вы хотите работать. Предположим, у вас есть модель Product с полями name, price и category. Вот как можно выбрать объекты, соответствующие нескольким параметрам в фильтре:

from django.db.models import Q
from .models import Product

# Выбираем продукты, у которых цена меньше 10 и категория "Одежда"
products = Product.objects.filter(price__lt=10, category="Одежда")

# Выбираем продукты, у которых цена меньше или равна 10, или имя содержит слово "футболка"
products = Product.objects.filter(Q(price__lte=10) | Q(name__icontains="футболка"))

# Выбираем продукты, у которых цена больше 10 и категория не равна "Одежда"
products = Product.objects.filter(price__gt=10).exclude(category="Одежда")

В первом примере мы выбираем продукты, у которых цена меньше 10 и категория равна "Одежда". Во втором примере, мы используем оператор Q для создания комплексного условия - продукты, у которых цена меньше или равна 10, или имя содержит слово "футболка". Также во втором примере мы использовали icontains, чтобы выполнить регистронезависимый поиск по имени продукта. В третьем примере, мы выбираем продукты, у которых цена больше 10, но категория не равна "Одежда", используя метод exclude().

Вы можете комбинировать различные аргументы и операторы, чтобы создавать сложные и точные запросы в фильтре. В Django также доступны другие операторы, такие как exact, contains, startswith, и другие, которые позволяют более гибко выбирать объекты по определенным условиям.

Надеюсь, это помогает вам понять, как выбрать несколько параметров в фильтре Django.