Q objects позволяют строить сложные WHERE-условия с OR, NOT, AND. Обычный filter() — только AND: filter(a=1, b=2). С Q: filter(Q(a=1) | Q(b=2)) — OR. ~Q(a=1) — NOT. Можно комбинировать: Q(a=1) & (Q(b=2) | Q(c=3)). Полезно для динамических фильтров: строишь Q-объект программно и передаёшь в filter(). Без Q невозможно сделать OR в Django ORM. Q objects — это по сути AST для WHERE-выражения, который Django компилирует в SQL.
Что такое Q objects в Django?
Middle
268 просмотровAFK Offer AI
Как работает middleware в Python веб-фреймворках?