-
카테고리
-
세부 분야
풀스택
-
해결 여부
해결됨
UpdateView - 포스트 수정 페이지 만들기 에서 질문이 있습니다.
23.06.16 14:20 작성 23.06.16 15:50 수정 조회수 253
0
26:27초 쯤에 tests.py의 test_update_post()
함수에서 카테고리의 pk를 적어줘야하는지 이해가 잘 되지 않습니다.
앞서 setUp()
함수에서 post_001과 post_002를 생성할 때는 category를 입력할 때 pk
는 사용하지 않고 진행했습니다.
하지만 왜 포스트 수정을 핱때는 category를 입력할 때 pk
를 사용해야 하는지 잘 모르겠습니다.
답변을 작성해보세요.
0
SungYong Lee
지식공유자2023.06.17
안녕하세요. 예리한 질문입니다!
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 밖에 없으므로 그걸 전달할 수밖에 없습니다.
혹시 설명이 너무 어렵다면 알려주세요!
답변 1