Tags
- outer join
- 완전검색
- ORM
- 백트래킹
- N:1
- Django
- DB
- Vue
- 뷰
- 이진트리
- regexp
- update
- drf
- migrations
- SQL
- 통계학
- create
- delete
- 스택
- stack
- M:N
- 트리
- distinct
- 그리디
- 쟝고
- 큐
- Article & User
- Tree
- Queue
- count
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Notice
Recent Posts
Link
데이터 분석 기술 블로그
DB에 대하여(15)_Django ManyToManyField (feat. Django) 본문
# 변경 전
doctor.patient_set.all()
# 변경 후
doctor.patients.all()
ManyToManyField(to, **options)
Many to many 관계 설정 시 사용하는 모델 필드입니다.
1. ManyToManyField's Arguments
1-1 'related_name' arguments
역참조시 사용하는 manager name을 변경합니다.
class Patient(models.Model):
doctors = models.ManyToManyField(Doctr, related_name='patients')
name = models.TextField()
1-2 'symmetrical' arguments
ManyToManyField가 동일한 모델을 가리키는 정의에서만 사용합니다. 기본값: True
# 예시
class Person(models.Model):
friends = models.ManyToManyField('self')
# friends = models.ManyToManyField('self', symmetrical=False)
True일 경우에는 source 모델의 인스턴스가 target 모델의 인스턴스를 참조하면 자동으로 target 모델 인스턴스도 source 모델 인스턴스를 자동으로 참조하도록 합니다 (대칭). 즉, 자동으로 내가 당신의 친구라면 당신도 내 친구가 됩니다.
Flase일 경우에는 True였을 때와 반대 (대칭되지 않음)입니다.
M:N에서의 methods
1. add()
"지정된 객체를 관련 객체 집합에 추가" (이미 존재하는 관계에 사용하면 관계가 복제되지 않습니다.)
2. remove()
"관련 객체 집합에서 지정된 모델 객체를 제거합니다."
'DB' 카테고리의 다른 글
DB에 대하여(17)_좋아요 기능 구현 (feat. Django) (0) | 2024.05.04 |
---|---|
DB에 대하여(16)_좋아요 모델 관계 설정 (feat. Django) (0) | 2024.05.03 |
DB에 대하여(14)_'through' argument (feat. Django) (0) | 2024.05.01 |
DB에 대하여(13)_ManyToManyField (feat. Django) (0) | 2024.04.30 |
DB에 대하여(12)_중개 모델 (feat. Django) (0) | 2024.04.29 |