인프런 커뮤니티 질문&답변
24강 html 파일 안에서 변수 사용 질문 (context 관련)
작성
·
341
0
제가 여태까지 강의를 들으면서 이해하기로는
html 파일 안에서 특정 변수를 쓸 때 views.py에서 context 구문 안에 변수를 넣어 보내는 걸로 이해했습니다.
예를 들어, hello_world view에선
이런 식으로 'hello_world_list'라는 이름의 변수에 hello_world_list를 할당(?)해서 html 안에서
{% if hello_world_list %} 이런 식으로 쓸 수 있는 걸로 이해했습니다.
만약 제 생각이 맞다면, DetailView에서는 따로 user 라는 이름에 할당한 변수가 없는데 어떻게 바로 user라는 변수를 가져와서 쓸 수 있는건가요?
class 기반의 view는 function 기반의 view와는 달리 작동하는 건가요?
퀴즈
회원가입 기능 구현 시, 새로운 사용자 객체를 생성하기 위해 장고에서 제공하는 어떤 클래스 기반 뷰를 주로 사용하나요?
DetailView
CreateView
UpdateView
DeleteView
답변 1
0
안녕하세요.
질문 확인했습니다.
말씀하신대로, Template 단에서 어떤 객체를 사용하기 위해선
View 단에서 해당 객체를 넘겨주어야 사용이 가능합니다.
하지만, View 에서 넘겨주는 값 말고도 사용이 가능한 객체가 있는데,
그 중에 하나가 user 객체입니다.
User 는 웹 서비스에 있어서 특수한 자원입니다.
어떤 웹서비스든 대부분 계정을 중심으로 인증이 진행되기 때문에,
django 프레임워크 또한 템플릿 단에서 User 객체에 편리하게 접근할 수 있도록
Template context 안에 user 객체를 미리 넣어둡니다.
자세한 내용은 장고 공식문서를 참고하시길 바랍니다.
https://docs.djangoproject.com/en/3.2/ref/templates/api/#built-in-template-context-processors
https://docs.djangoproject.com/en/3.2/topics/auth/default/#authentication-data-in-templates
결과적으로,
function based view 와의 동작 구조 차이가 있는것이 아니라,
기본적으로 django template 안에서 사용가능한 user 라는 객체가 존재한다고 생각하시면 되겠습니다.
답변이 도움 되셨길 바랍니다!
좋은하루 보내시구요-
감사합니다!





친절한 답변 정말 감사합니다!