Представляю вам перевод статьи «Building a higher-level query API: the right way to use Django’s ORM«. Буду признателен за указание найденных неточностей при переводе.
В данной статье я попытаюсь аргументировать, почему использование низкоуровневых методов Django ORM (filter
, order_by
и т.д.) в представлении, является «анти-паттерном». Правильный путь — создавать «query APIs» на уровне моделей, где и описывается вся бизнес-логика приложения. Django не позволяет это сделать очень легко, но окунувшись во внутренности ORM, я покажу вам как достигнуть поставленной цели.