Как получить несколько объектов модели без использования фильтра? - PullRequest
0 голосов
/ 27 апреля 2019

В Django 2.2 мы можем использовать filter(), чтобы получить QuerySet созданных объектов. Используя list(), я могу получить список QuerySet.

Чтобы получить экземпляр модели, я могу использовать функцию get(), например MyModel.objects.all().get(name__exact="John"). Однако функция get() работает только для поиска одного объекта. Если if находит 2 или более объектов, возвращается исключение: MultipleObjectsReturned get() returned more than one.

Поскольку мне нужно обработать несколько объектов моей модели и ее атрибутов, я хотел бы получить список объектов. Является ли это возможным? Например, я хочу создать список возрастов для всех объектов с Джоном в имени атрибута.

Если нет, как я могу получить доступ к атрибуту (например, возрасту) возвращенного QuerySet из MyModel.objects.all().filter(name__exact="John")?

Спасибо.

1 Ответ

1 голос
/ 27 апреля 2019

Использование values:

instances = MyModel.objects.filter(name__exact="John")
ages = instances.values('id', 'age')

Вы получите список словарей с ключами id и age.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...