Группа QuerySet по нескольким полям - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь сделать запрос и хочу сгруппировать по нескольким полям. Некоторые из этих полей являются внешними ключами. Когда мне возвращают запрос, я бы хотел, чтобы эти внешние ключи были объектами их соответствующих моделей. Единственный способ группировки по набору запросов - это values('model1', 'model2', 'somefield'). Однако, когда я делаю это, значения, которые я получаю из этих полей, являются идентификаторами этих объектов.

Я ищу эквивалентный запрос:

SELECT model1, model2, somefield, sum(something) FROM table WHERE (conditions here) GROUP BY model1, model2, somefield

И я бы хотел, чтобы model1, model2 были объектами модели, а не просто идентификаторами.

Есть ли хороший способ сделать это?

Спасибо

1 Ответ

0 голосов
/ 07 ноября 2018

Когда вы используете обычный запрос модели Django:

model_instances = Model.objects.filter(some condition).order_by('model1', 'model2', 'some_field')

model_instance получает массив экземпляров класса Model, и атрибуты внешнего ключа каждого экземпляра также являются экземплярами соответствующих моделей, поэтому model_instances[0].model1 будет экземпляром Model1.

Вы можете проверить ссылку на Django для выполнения запросов здесь .

...