as_view()에서 인자로 http method의 사용 가능 여부
471
작성한 질문수 16
안녕하세요.
강의 내용 중에 다음과 같은 코드를 보여 주셨는데요.
post_list = PostViewSet.as_view({
'get': 'list'
})그런데 장고의 소스 코드를 보면,
class View:
"""
Intentionally simple parent class for all views. Only implements
dispatch-by-method and simple sanity checking.
"""
http_method_names = [
"get",
"post",
"put",
"patch",
"delete",
"head",
"options",
"trace",
]
# 중간 코드 생략
@classonlymethod
def as_view(cls, **initkwargs):
"""Main entry point for a request-response process."""
for key in initkwargs:
if key in cls.http_method_names:
raise TypeError(
"The method name %s is not accepted as a keyword argument "
"to %s()." % (key, cls.__name__)
)
as_view()에 전달한 키워드 인자에 http_method_names 의 항목에 해당하는 키가 있으면 TypeError 를 발생시키는 것으로 되어 있는 것 같습니다.
그런데 as_view()에 강의 내용과 같이 get 을 키워드 인자로 사용해도 되는지 궁금합니다.
답변 1
1
안녕하세요.
살펴보신 코드는 View 클래스의 as_view 클래스메서드이구요.
아래 코드의 as_view는 View의 것이 아니라, DRF ViewSet의 as_view 메서드입니다.

DRF ViewSet의 as_view 메서드 코드를 아래의 링크에서 확인하실 수 있구요.
https://github.com/encode/django-rest-framework/blob/master/rest_framework/viewsets.py#L58

ViewSet의 as_view 클래스메서드의 첫번째 인자는 actions 이며, 이는 action_map 으로서 활용됨을 확인하실 수 있습니다.
코드를 잘 살펴보시고 계시네요.
화이팅입니다. :-)
안녕하세요.
0
49
1
[OneToOne Field Demo] get_user_model() 메서드를 활용해야 하는 이유?
0
275
1
useEffect 훅에서 else 유무에 따른 결과
0
211
1
useAxios 훅의 dependency array 설정
0
245
1
useEffect에서 변수 업데이트 관련 질문
0
382
1
rest_framework.generics.CreateAPIView의 model 속성 유무
0
268
1
bootstrap4
0
471
4
리뉴얼 강의가 오픈이 되면 기존 강의는 더이상 못보는걸까요
1
365
1
admin form에서 앞선 필드 선택 후 다른 필드 select widget 구성하는 방법
0
574
3
useState는 필수일까요?
0
263
1
python manage.py makemigrations instagram 시 created_at default 오류가 발생합니다.
0
600
4
Django allauth를 사용한 소셜 로그인 시 에러
0
655
1
프로젝트명 변경 뒤, 디버그툴바+디버그모드 사용 시 에러
0
556
2
useLocalStorage() 함수 사용여부
0
229
1
django에 LOGIN_URL = '/accounts/login/'의 의미?
0
449
1
리듀서의 의미 재확인
0
430
1
simple-jwt Refresh Token 사용 노하우
0
899
2
docker compose 를 통한 배포 관련 오류 문의
0
672
1
파이썬 속도 장고 관련 궁금한게 있습니다.
0
365
1
is_like_user
0
233
1
related_name 오류
0
275
1
re_path 오류
0
259
1
re_path url
0
251
1
No post matches the given query
0
661
2





