반응형
[Django] 파이썬 장고 ORM ManyToManyField 추가 및 삭제 방법_ 예제
테이블의 특정 컬럼에 대해서 다수의 옵션이 필요할 경우 ManyToManyField로 관리할 수 있다.
즉, 다 대 다 관계가 되는것이다.
# 모델 샘플
Menu 모델의 option 컬럼은 ManyToManyField로 MenuOptionType을 타겟하고 있다.
즉 Menu 모델의 한 row에 대해서 option이 여러개 맵핑될 수 있다는 뜻이다.
# ManyToManyFiel로 생성된 연동테이블 예시
Id | Menu테이블 id | MenuOptionType id |
1 | 1 | 4 |
2 | 2 | 5 |
3 | 2 | 6 |
# 활용 방법
menu_list = Menu.objects.get(name='아이스아메리카노')
menu_list.option.add('MenuOptionType 모델의 pk')
menu_list.save()
# 메뉴이름이 아이스아메리카노인 쿼리셋을 생성 후
# 해당 쿼리셋의 option에 MenuOptionType id를 add 해준다.
# 그럼 아이스아메리카노의 option이 다양하게 매핑된다.
menu = Menu.objects.get(name='아이스아메리카노')
menu.option.clear()
# 아이스아메리카노의 모든 옵션을 삭제할때는 clear()
# 장고 ManyToManyField # django ManyToManyField
반응형
'파이썬 웹 개발' 카테고리의 다른 글
[Django] 파이썬 장고 네이버 검색 API _ 뉴스 검색 (0) | 2022.05.14 |
---|---|
[Django] 파이썬 장고 서브쿼리(orm subquery) 예제 _ SQL과 비교하기 (0) | 2022.05.12 |
[Django] List 안에 dict key값으로 정렬하기 _OUTER JOIN 대체 방법 (0) | 2022.04.22 |
[Python Django] 월별 sum, count 집계함수 orm group_by (0) | 2022.04.19 |
[Python Django] orm sum, count 출력하기 _orm 합계, 카운트(집계함수) (0) | 2022.04.14 |
댓글