LEFT JOIN 해서 테이블을 쫙 보여주고 싶었는데 ORM 의 기본기능으로는 안되는 건가? 일단 급한대로 raw sql을 직접 집어넣는 형태로 구현을 해 놓고 보자.
item_list = Parts.objects.raw(
"SELECT devices_parts.*, devices_lineparts.quantity \
FROM devices_parts \
LEFT JOIN devices_lineparts \
ON devices_parts.id=devices_lineparts.parts_id AND devices_lineparts.line_id="
+ str(line_pk)
+ " ORDER BY devices_parts.group0_id ASC, devices_parts.group1_id ASC, devices_parts.name ASC"
)
print(item_list.query)
장비 목록이 하나의 테이블로 저장되어 있고,
해당 장비별 라인에서 사용하는 갯수를 또 다른 테이블에 저장하고 있다.
장비 목록에서 정방향 참조를 할 수 없고, 라인별 장비 저장 테이블에서 정방향으로 가져오려니 전체 장비 목록에 숫자만 넣는 형태가 안되고..
LEFT Join으로 많이 찾아 보는데 그냥 이걸로 쓰자.
Model.objects.raw("SQL문장") 이렇게 쓸 수 있으니 다행이긴 한데 쫌 찝찝
Enric Cruz López 님의 사진, 출처: Pexels