(...) но я устала от погоды Django делает что-то глупое, например, выбирает все из базы данных в памяти, а затем отбирает вещи, которые не соответствуют Python (например, способэто делает rails).
Нет , ORM Джанго создаст запрос SQL .Если вы каким-либо образом не исправите менеджер объектов, он, таким образом, сгенерирует запрос, в котором фильтрация выполняется на стороне database .
Если вы хотите все элементы, которые удовлетворяютДля данного условия вы должны использовать .filter(..)
, поэтому:
SomeModel.objects.filter(x=y)
это вернет QuerySet
: коллекцию (возможно, пустую) из SomeModel
объектов.
Если вы хотите получить один элемент, вы используете .get(..)
:
SomeModel.objects.get(x=y)
. Это вернет SomeModel.DoesNotExist
, если такой записи не существует, и SomeModel.MultipleObjectsReturned
, если найдены две или более записей.для данного условия.