해결된 질문
작성
·
287
·
수정됨
답변 1
0
안녕하세요. 예리한 질문입니다!
setUp에서 create로 생성할 때와 self.client.post로 생성할 때는 그 의미가 다릅니다.
우선 setUp에서 모델명.objects.create를 사용할 때는 장고 파이썬을 이용해 생성하는 방법입니다. create함수가 그렇게 사용할 수 있도록 정의되어 있기 때문에 pk가 아니라 실제 파이썬 인스턴스를 넣어주게 되어 있습니다.
그러나 self.client.post에서 self.client는 는 from django.test import Client로 정의된 요소입니다. 가상의 브라우저라고 생각하시면 됩니다. 브라우저에서 서버와 통신하는 방식은 get방식과 post 방식이 있고, 그 중 post 방식으로 정보를 브라우저에서 전달하는 상황입니다. 이때 self.client (브라우저라고 생각하면 됨)에서 갖고 있을 수 있는 정보는 해당 카테고리의 pk 밖에 없으므로 그걸 전달할 수밖에 없습니다.
혹시 설명이 너무 어렵다면 알려주세요!