Django модель: объединение и группировка по первому элементу - PullRequest
0 голосов
/ 03 мая 2020

У меня две модели в Django.

Columns A |
------------
id
name 
address
B
------------
------------


Columns B |
------------
id
ref
name 
date
------------
------------

Если бы у меня были такие данные:

id | name  |  address  |  B
--------------------------------
1  | one   |  ad.      |  1


id | ref | name  |  date   
----------------------------
1  | 1   |  one_ |  1.1.2020
2  | 1   |  two_ |  1.2.2020
3  | 1   |  thr_ |  1.3.2020
4  | 1   |  fou_ |  1.7.2020

, и я бы сделал объединение, которое у меня было бы (объединение B к ref)

id_a | name  |  address  |  B  |  id_b | ref | name  |  date   
---------------------------------------------------------
1   | one   |  ad.      |  1   |  1    | 1   |  one_ |  1.1.2020
1   | one   |  ad.      |  1   |  2    | 1   |  two_ |  1.2.2020
1   | one   |  ad.      |  1   |  3    | 1   |  thr_ |  1.3.2020
1   | one   |  ad.      |  1   |  4    | 1   |  fou_ |  1.7.2020

Теперь я бы хотел сгруппировать по id_a или ref и получить «последний» элемент (либо по id_b, либо по дате)

, поэтому конечные результаты должны быть:

id_a | name  |  address  |  B  |  id_b | ref | name  |  date
---------------------------------------------------------   
1   | one   |  ad.      |  1   |  4    | 1   |  fou_ |  1.7.2020

Как это сделать в Django модели ORM? Я мог бы найти, как сделать annotation и join и group by, но это всегда имеет значение, или что-то в этом роде ...

...