인프런 커뮤니티 질문&답변
django에서 context란
작성
·
1.3K
0
안녕하세요~ 강의 잘 보고 있습니다!
다름이 아니라 AccountDetailView에서 context_object_name 이라는 변수? 에서 context 라는게 장고에서는 어떤 의미인지 궁금합니다...
아 그리고 이건 약간 다른 질문인데요,
클래스 구조나 콜 순서가 궁금해서 내부 코드를 따라가다보니까
이런 부분을 발견하긴 했는데..여기서 더 어떻게 파고 들어가야 할지 모르겠습니다...
함수나 클래스의 호출 과정을 보시는 방법이나 노하우? 같은게 있을까요?ㅎㅎ
퀴즈
회원가입 기능 구현 시, 새로운 사용자 객체를 생성하기 위해 장고에서 제공하는 어떤 클래스 기반 뷰를 주로 사용하나요?
DetailView
CreateView
UpdateView
DeleteView
답변 3
3
안녕하세요 선주님!
강좌 잘 들어주셔서 감사합니다.
질문 확인했습니다.
이해를 돕기 위해서
일단 유저가 요청을 보내는 것부터 시작을 해보겠습니다.
유저는 브라우저를 통해 서버에 요청을 보냅니다.
http://XXX.XXX/accounts/detail/1
accountapp 내부의 detail 페이지,
그 중에서도 1번 account 객체의 detail 페이지를 요청합니다.
그렇게 되면, 서버 단에서는 1번 account 객체의 상세정보를 되돌려주어야 합니다.
그 말은, 서버에서 1번 계정의 상세정보를 담은
HTML template 을 되돌려주어야 한다는거죠.
그렇다면 이 HTML 템플릿에서는,
해당 1번 계정 객체에 접근하여
해당 객체의 상세정보를 출력해야 합니다.
그렇다면 HTML 템플릿 단에서 편리하게
특정 변수 이름을 통해 객체에 접근을 할 수 있도록 해주어야 하겠죠?
view 단에서 그 특정 변수 이름을 지정해주는 것이
context_object_name 이라고 생각을 하시면 됩니다.
context_object_name 을 target_account 로 지정을 해줌으로서
템플릿 단에서 요청이 들어온 해당 account 객체에 편하게 접근할 수 있는거죠.
해당 설정이 필수적인 설정은 아닙니다.
하지만 template 단에서 객체 접근에 대한 편의를 높이기 위해
부가적으로 진행하는 내용이라고 이해해주시면 됩니다.
장고의 공식 문서에 해당 context_object_name 의 용법에 대해 나와있습니다.
영어로 된 공식 문서이긴 하지만,
더 자세하게 이해하고 싶으시다면 참고하시면 좋을것 같습니다.
답변이 도움되셨으면 좋겠네요!
좋은 주말 보내세요!
0
선생님 추가 질문이 있습니다.
http://XXX.XXX/accounts/detail/1
accountapp 내부의 detail 페이지,그 중에서도 1번 account 객체의 detail 페이지를 요청합니다.
그렇게 되면, 서버 단에서는 1번 account 객체의 상세정보를 되돌려주어야 합니다.
라고하셧는데 그렇다면
detail/<int:pk><- 이렇게 url 에서 받은 변수를
class AccountDetailView(DetailView):
model = User
context_object_name = 'target_user'
template_name = 'accountapp/detail.html'
이 클래스로 변수를 넘겨줘야하는거 같은데 어떻게 넘어간건가요??
DetailView 매개면수가 알아서 이 변수들을 걸러서 가공하게되는건가요?
0
와 감사합니다 앞선 강의부터 지금까지 다른 분들의 질문들을 하나씩 클릭하면서 어떻게 장고를 더 깊게 공부하면 되는지 길을 잡고있습니다.
이 질문들만 따로 모아놓은 게시판이나 글들이 있으면 좋을거 같아요. 정말 꿀이네요~!




