작성
·
1.1K
0
안녕하세요~ 강의 잘 보고 있습니다!
다름이 아니라 AccountDetailView에서 context_object_name 이라는 변수? 에서 context 라는게 장고에서는 어떤 의미인지 궁금합니다...
아 그리고 이건 약간 다른 질문인데요,
클래스 구조나 콜 순서가 궁금해서 내부 코드를 따라가다보니까
이런 부분을 발견하긴 했는데..여기서 더 어떻게 파고 들어가야 할지 모르겠습니다...
함수나 클래스의 호출 과정을 보시는 방법이나 노하우? 같은게 있을까요?ㅎㅎ
답변 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
와 감사합니다 앞선 강의부터 지금까지 다른 분들의 질문들을 하나씩 클릭하면서 어떻게 장고를 더 깊게 공부하면 되는지 길을 잡고있습니다.
이 질문들만 따로 모아놓은 게시판이나 글들이 있으면 좋을거 같아요. 정말 꿀이네요~!