강의

멘토링

로드맵

Inflearn Community Q&A

22's profile image
22

asked

Getting started with payments using Python/Django (Feat. Aimport) - Basics

pk필드에 대해서

Written on

·

248

0

안녕하세요, 대전에서 아주 잘 듣고 있는 수강생입니다 ㅎ

 

템플릿에서 db에 뭔가 요청을 할 때

{% url '주소' id %}

 

이런식으로 요청하면 url에서

'주소'/<int:pk>로 넘어가서

 

view에서

def 주소(request, pk):

a = get_object_or_404(Product, pk=pk)

이런식으로 조회를 하잖아요?

 

근데 우리가 모델에서 pk라는 필드를 정의한 적이 없는데 get object or 404 함수는 어떻게 pk인자를 받아서 id인자를 알아서 찾아오나요?

 

혹시나해서 모델에서 기본적으로 id 필드말고 pk 필드가 있는 지 봤는데 그런 것 같진 않더군요.

 

primary key가 되는 필드를 알아서 매핑하는건가요? 아니면 제가 모르는 장고의 동작이 별도로 있나요?

pythondjango

Answer 1

0

pyhub님의 프로필 이미지
pyhub
Instructor

안녕하세요.

예상하신 대로 장고 모델에서 pk는 실제 필드가 아니며, 기본키 필드를 가리키는 alias 입니다.

기본키 필드는 변경되더라도, pk를 통해 항상 기존키를 참조할 수 있기에, CBV에서도 내부 구현에 pk= 로 조회토록 기본 구현되어있습니다.

화이팅입니다. ;-)

 

paichai17님의 프로필 이미지
paichai17
Questioner

아!! alias였군요 ㅠㅠ 장고가 참 편리하지면서도 코드상에 드러나지 않은 부분들이 많아서 알아야할 것도 많네요.

22's profile image
22

asked

Ask a question