Как надо. Django ORM

Не хочу дублировать здесь документацию по Django ORM. Порой возникает такое ощущение, что большинству знакомо только четыре метода из Django ORM (filtergetupdate и delete). Попытаюсь рассказать еще про 12 не таких очевидных. И, возможно, нативного SQL в вашем коде будет меньше. ORM надо знать, в Django модели являются невероятно важной составляющей.

  1. exclude()
    Первый метод - exclude(). Он возвращает нам набор запросов без заданного вами значения.
  2. Values()
    Следующий метод - метод values(). Он возвращает словари Python вместо объекта QuerySet.
  3. values_list()
    Метод values_list() схож с методом values(), но вместо словарей он возвращает кортежи.
  4. elect_related()
    Мы можем использовать select_related() для повышения производительности базы данных путем извлечения всех связанных данных при первом обращении к ней.
  5. order_by()
    Метод order_by() изменяет порядок выдачи запросов по умолчанию. По умолчанию запросы выдаются с сортировкой по первичным ключам (id). Если я хочу, чтобы мой QuerySet упорядочивался по имени, я могу передать поле name методу order_by().
  6. exists()
    Метод exists() возвращает True, если возвращаемый QuerySet содержит один или несколько объектов, и значение False, если QuerySet пустой.
  7. count()
    Метод count() считает количество записей в QuerySet. Его можно использовать для подсчета всех объектов в таблице базы данных.
  8. first() и last()
    Метод first() возвращает первый элемент из QuerySet. Метод last() возвращает последний элемент из QuerySet.
  9. in_bulk()
    in_bulk() принимает список значений id и возвращает словарь, где каждый id сопоставляется с экземпляром объекта. Если вы не передадите список методу in_bulk(), то получите все объекты.
  10. explain()
    Этот метод возвращает строку плана выполнения QuerySet. Используется для анализа производительности запросов.
  11. latest()
    Метод latest() аналогичен методу last(). Он возвращает последний объект в таблице на основе заданных полей.
  12. earliest()
    Метод earliest() аналогичен методу first() и противоположен методу latest().

Надеюсь было полезно.