Не хочу дублировать здесь документацию по Django ORM. Порой возникает такое ощущение, что большинству знакомо только четыре метода из Django ORM (filter, get, update и delete). Попытаюсь рассказать еще про 12 не таких очевидных. И, возможно, нативного SQL в вашем коде будет меньше. ORM надо знать, в Django модели являются невероятно важной составляющей.
- exclude()
Первый метод -exclude(). Он возвращает нам набор запросов без заданного вами значения. - Values()
Следующий метод - методvalues(). Он возвращает словари Python вместо объектаQuerySet. - values_list()
Методvalues_list()схож с методомvalues(), но вместо словарей он возвращает кортежи. - elect_related()
Мы можем использоватьselect_related()для повышения производительности базы данных путем извлечения всех связанных данных при первом обращении к ней. - order_by()
Методorder_by()изменяет порядок выдачи запросов по умолчанию. По умолчанию запросы выдаются с сортировкой по первичным ключам(id). Если я хочу, чтобы мойQuerySetупорядочивался по имени, я могу передать поле name методуorder_by(). - exists()
Методexists()возвращаетTrue, если возвращаемыйQuerySetсодержит один или несколько объектов, и значениеFalse, еслиQuerySetпустой. - count()
Методcount()считает количество записей вQuerySet. Его можно использовать для подсчета всех объектов в таблице базы данных. - first() и last()
Методfirst()возвращает первый элемент изQuerySet. Методlast()возвращает последний элемент изQuerySet. - in_bulk()
in_bulk()принимает список значенийidи возвращает словарь, где каждыйidсопоставляется с экземпляром объекта. Если вы не передадите список методуin_bulk(), то получите все объекты. - explain()
Этот метод возвращает строку плана выполненияQuerySet. Используется для анализа производительности запросов. - latest()
Методlatest()аналогичен методуlast(). Он возвращает последний объект в таблице на основе заданных полей. - earliest()
Методearliest()аналогичен методуfirst()и противоположен методуlatest().
Надеюсь было полезно.