Карточка Junior Django ORM и N+1 обновлено

Объект Q

Вопрос

Зачем нужен Q в Django ORM?

Попробуйте сами

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

Для сложных условий: ИЛИ (Q(a=1) Q(b=2)), отрицание (Q(...)), группировка скобками. Обычные аргументы filter(a=1, b=2) объединяются только через И.

Ответ

Для сложных условий: ИЛИ (Q(a=1) | Q(b=2)), отрицание (~Q(...)), группировка скобками. Обычные аргументы filter(a=1, b=2) объединяются только через И.

Разбор

Q-объекты можно собирать динамически, например из фильтров формы.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.