inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

장고 기본 CBV API (Base Views)

template_name를 참조하는 방식

해결된 질문

302

율리시스

작성한 질문수 10

0

- 여러분의 질문을 고대하고 있습니다. :-)
- 질문 전에 검색을 먼저 해보세요. 사람 사는 게 다 비슷하다는 것을 알게 됩니다.
- 예의는 거침없이 질문하기 위한 최고의 발명품입니다.
- 100개의 설명이 스크린샷 한방 보다 못할 수 있습니다.
- 코드를 첨부하면 전세계 누구나 이해할 수 있는 질문이 됩니다.
- 하나의 질문에는 하나의 주제를 담아야 답변도 예리해집니다.
- 시행착오를 알려주시면 곧 바로 원하는 문제에 집중할 수 있습니다.

- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
 
안녕하세요 강사님.
root URL 정의 예시에서 template_name을 인스턴스 변수 또는 클래스 변수로 지정하시는 두가지 예시를 들어주셨는데요.
코드상에서 봤을때는 인스턴스 변수가 정의되어 있지 않으면 raise ImproperlyConfigured 에러를 일으키고 있고 이 때 template_name에 대한 클래스 변수를 다시 참조하는 코드는 보이지는 않는것 같습니다.
이부분은 어떤식으로 동작하는걸까요?? 클래스 변수로 지정해주고 해당 URL로 접근 후에 디버그로 돌려보면 이미 self.template_name은 정의된것으로 나오는것이 신기하네요.

view docker django python react

답변 1

1

이진석

안녕하세요.

파이썬의 클래스 문법에서 클래스 변수와 인스턴스 변수 문법에 대해서 살펴보겠습니다.

인스턴스 내에서 self.template_name 으로 접근하였을 때,

1) 인스턴스 변수로서 template_name이 있는 지 먼저 찾습니다. 인스턴스 변수로서 그 이름의 값이 있으면 그 값을 사용하고

2) 인스턴스 변수로서 그 이름의 값이 없으면, 클래스 변수로서 template_name이 있는 지 찾습니다. 클래스 변수로서 그 이름의 값이 있으면 그 값을 사용하고

3) 없으면 AttributeError 예외를 발생시킵니다.

---

TemplateView.as_view(template_name="root.html") 코드에서

TemplateView 클래스만 봤을 때에는 클래스 변수 template_name = None 선언은 있지만, 인스턴스 변수 template_name은 없죠. 이때는 self.template_name 값은 None이 됩니다. 클래스 변수이죠.

그런데 .as_view(template_name="root.html") 지정을 통해 인스턴스 변수로서 template_name이 생성이 되었고. 이제 self.template_name 값은 "root.html" 이 됩니다. 인스턴스 변수입니다.

0

율리시스

답변 감사합니다. 결국 인스턴스 변수를 참조하는것 자체가 인스턴스 변수 참조 후 클래스 변수까지 참조하는 것을 포함하는것이군요. 파이썬 문법 공부가 좀더 필요하겠네요 :)

안녕하세요.

0

62

1

[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?

0

282

1

useEffect 훅에서 else 유무에 따른 결과

0

221

1

useAxios 훅의 dependency array 설정

0

254

1

useEffect에서 변수 업데이트 관련 질문

0

385

1

rest_framework.generics.CreateAPIView의 model 속성 유무

0

273

1

bootstrap4

0

479

4

리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요

1

373

1

admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법

0

577

3

useState는 필수일까요?

0

269

1

python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.

0

606

4

Django allauth를 사용한 소셜 로그인 시 에러

0

657

1

프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러

0

561

2

useLocalStorage() 함수 사용여부

0

233

1

django에 LOGIN_URL = '/accounts/login/'의 의미?

0

451

1

리듀서의 의미 재확인

0

435

1

simple-jwt Refresh Token 사용 노하우

0

903

2

docker compose 를 통한 배포 관련 오류 문의

0

683

1

파이썬 속도 장고 관련 궁금한게 있습니다.

0

368

1

is_like_user

0

236

1

related_name 오류

0

276

1

re_path 오류

0

263

1

re_path url

0

252

1

No post matches the given query

0

667

2