inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

관계를 표현하는 모델 필드 (ManyToManyField)

주피터에서 Tag.objects.create와 add의 차이가 뭔가요?

해결된 질문

195

윤해빈

작성한 질문수 23

0

태그set에 create 한 다음에

Tag.objects.all() 을 입력하면 기존의 태그에 create한 태그가 추가되어서 출력이 되는데

어째서 post.tag_set.all() 에는 create한 태그가 출력되지 않는지 잘 모르겠습니다.

전자의 경우 아직 DB에 등록되지는 않은 상태라 그런건가요?

react django docker python

답변 1

0

이진석

안녕하세요.

Tag.objects.create(...) 는 Tag 모델 인스턴스 생성 및 저장(save)까지 모두 수행을 합니다. 모든 모델 클래스에서 지원을 하구요.

add는 ManyToManyField에서 지원하는 메서드입니다. M2M 관계를 추가하는 역할을 합니다.

ManyToManyField에서는 create 메서드도 지원하는 데요. 이는 Tag 인스턴스에 대한 create 및 M2M 관계에 대한 add까지 수행을 해줍니다.

그러니 post.tag_set.create(name="new tag") 태그가 잘 동작하셨다면, post.tag_set.all() 내역에서도 "new tag" name의 Tag가 존재합니다.

설명 만으로 수행하신 정확한 동작을 제가 예상하긴 어려우니, 실제로 수행하신 코드들과 그 코드들에 대해서 예상하는 동작에 대한 설명까지 같이 첨부해주시면, 제가 보다 좋은 답변을 드릴 수 있을 듯 합니다.

화이팅입니다. :-)

ps. 질문이 해결되셨다면, 본 질문의 상태를 해결됨으로 변경 부탁드립니다.

0

윤해빈

제 너무 두서없이 질문을 드려네요ㅠㅠ 답변 감사드립니다.

제 질문의 의도는 위와 같이 Tag.objects.create(name="aasdf") 를 통해 태그를 추가하고

Tag.objects.all() 를 확인하면 추가된 태그가 쿼리셋을 통해 확인이 가능한데

어째서 post.tag_set.all() 을 통해서는 확인이 안되는건지를 여쭤본 것이었습니다.

0

이진석

제가 위에서 설명드린 바와 같이

Tag.objects.create는 Tag 인스턴스만 저장할 뿐, post 와의 관계를 맺어주진 않습니다. 그러니 post.tag_set.all() 에 그 Tag가 없는 것이 당연입니다.

Tag.objects.create 와 post.tag_set.create 는 다릅니다.

0

윤해빈

감사합니다!

안녕하세요.

0

62

1

[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?

0

285

1

useEffect 훅에서 else 유무에 따른 결과

0

222

1

useAxios 훅의 dependency array 설정

0

254

1

useEffect에서 변수 업데이트 관련 질문

0

389

1

rest_framework.generics.CreateAPIView의 model 속성 유무

0

276

1

bootstrap4

0

481

4

리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요

1

374

1

admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법

0

578

3

useState는 필수일까요?

0

272

1

python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.

0

610

4

Django allauth를 사용한 소셜 로그인 시 에러

0

660

1

프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러

0

569

2

useLocalStorage() 함수 사용여부

0

238

1

django에 LOGIN_URL = '/accounts/login/'의 의미?

0

454

1

리듀서의 의미 재확인

0

439

1

simple-jwt Refresh Token 사용 노하우

0

907

2

docker compose 를 통한 배포 관련 오류 문의

0

686

1

파이썬 속도 장고 관련 궁금한게 있습니다.

0

372

1

is_like_user

0

238

1

related_name 오류

0

278

1

re_path 오류

0

265

1

re_path url

0

255

1

No post matches the given query

0

671

2