본문 바로가기
파이썬 웹 개발

[Django] ManyToManyField 추가 및 삭제 방법_ 예제

by 배추잠자리 2022. 5. 10.
반응형

[Django] 파이썬 장고 ORM ManyToManyField 추가 및 삭제 방법_  예제

 

테이블의 특정 컬럼에 대해서 다수의 옵션이 필요할 경우 ManyToManyField로 관리할 수 있다.

즉, 다 대 다 관계가 되는것이다.

 

# 모델 샘플

Model

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

반응형

댓글