inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

04-09 장고 기본 CBV API (Generic display views) - DetailView

장고에서 song_detail.html을 찾아가는 이유를 모르겠습니다.

238

meyou1218

작성한 질문수 16

1

본 강의에서 views.py에 urlpatterns배열을 수업 내용인 song_detail에서 song_ddetail로 바꾸고 실행시켜 보았는데 장고에서는 hottrack/song_detail.html을 찾고 있습니다.

urlpatterns에 있는 views.song_detail이 있기때문에 song_detail.html을 찾는게 아닌가용?? 혹시 어떻게 하면 song_ddetail.html과 연결 시킬 수 있을까요??

  1. hottrack / urls.py

from django.urls import path, re_path  # urlpatterns리스트에 필요한 것.

from . import converters  # noqa
from . import views  # view매핑을 위해 임포트.

urlpatterns = [
    path(route="", view=views.index),
    path(route="archives/<date:release_date>/", view=views.index),
    re_path(route=r"^export\.(?P<format>(csv|xlsx))$", view=views.export),
    path(route="<int:pk>/cover.png", view=views.cover_png),
    path(route="<int:pk>/", view=views.song_ddetail), 
]
  1. hottrack/views.py

song_ddetail = DetailView.as_view( # 디테일뷰 구현
    model=Song, # 모델인자로 Song지정함.
)
  1. template

     

 

song_detail 함수를 song_ddetail로 변경하면 작동이 되지 않는데 이유가 무엇인지 궁금합니다.

react python django web-api htmx

답변 1

0

이진석

안녕하세요.

현재 DetailView를 통해 song_detail 뷰를 구현하신 상황입니다.
그리고 model 인자를 지정하신 상황이죠.

DetailView에서는 model 인자가 지정된 경우, 디폴트 template_name 으로서 "앱이름/모델명소문자_detail.html" 파일을 찾습니다.
현재 앱이 hottrack 이고 모델이 Song이니까 hottrack/song_detail.html 템플릿 파일을 찾는 것입니다.
DetailView.as_view 호출을 통해 생성하는 함수 이름과는 전혀 상관이 없습니다.

앱과 모델이 고정된 상태에서 템플릿 이름을 변경하실려면, template_name 인자를 직접 설정하시거나 get_template_names 메서드를 직접 구현하시는 방법이 유일합니다. :-)

--

장고 코드에서는 아래에서 확인해보실 수 있는 데요.

https://github.com/django/django/blob/main/django/views/generic/detail.py#L146

코드가 읽기 어려우실 경우, 아래의 django-vanilla-views 구현체를 살펴보셔도 좋습니다.

https://github.com/encode/django-vanilla-views/blob/master/vanilla/model_views.py#L203


추가 질문 환영하구요. 확인해보시고 댓글 부탁드립니다. :-)

1

meyou1218

아 그렇군요 감사합니다!!

Django의 View나 URL의 네이밍 컨벤션

0

60

1

08-14 FormView 관련 질문

0

72

1

07-01 IPv4AddressIntegerField 질문

0

82

1

14-08 수업 확인 요청 드립니다.

0

91

2

nextjs git 관리?

0

75

1

14-07에서 SESSION_COOKIE_DOMAIN = None 처리 필요.

0

75

2

고민

0

219

3

django-component==0.139 실행 시 오류

0

167

2

django-csp 4.0 migration 관련

0

122

2

01 윈도우 개발환경 설치 문의

0

99

1

강의 자료 문의

0

129

2

선생님 학습 방법 질문이 있습니다.

0

154

2

bulk_update에서 updated_at 필드

0

124

1

정규표현식

0

107

2

선생님 질문 있습니다.

0

80

1

공유자님 이 강의 공부 방법에 대한 질문입니다.

0

181

2

mydjango.py 질문 있습니다.

0

147

3

Django-Components의 0.128 세팅

0

226

3

질문 아님.

0

127

1

mydjango.py 실습 질문있습니다.

0

87

2

pycharm 개발환경 설정 오류

0

181

2

강의 듣다가 유료pycharm에 비해 vscode지원기능이 아쉬워서 확장프로그램 만들었는데 여기 공유해도 될까요?

0

167

1

중단점에 대한 질문 있습니다.

0

132

2

todo / react 붙이는 깃주소를 받고 싶습니다.

0

179

6