inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

ViewSet과 Router

as_view()에서 인자로 http method의 사용 가능 여부

474

코해

작성한 질문수 17

0

안녕하세요.

강의 내용 중에 다음과 같은 코드를 보여 주셨는데요.

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 을 키워드 인자로 사용해도 되는지 궁금합니다.

react python django docker

답변 1

1

이진석

안녕하세요.

살펴보신 코드는 View 클래스의 as_view 클래스메서드이구요.

아래 코드의 as_view는 View의 것이 아니라, DRF ViewSet의 as_view 메서드입니다.

image

DRF ViewSet의 as_view 메서드 코드를 아래의 링크에서 확인하실 수 있구요.

https://github.com/encode/django-rest-framework/blob/master/rest_framework/viewsets.py#L58

image

ViewSet의 as_view 클래스메서드의 첫번째 인자는 actions 이며, 이는 action_map 으로서 활용됨을 확인하실 수 있습니다.

코드를 잘 살펴보시고 계시네요.

화이팅입니다. :-)

 

안녕하세요.

0

63

1

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

0

287

1

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

0

222

1

useAxios 훅의 dependency array 설정

0

255

1

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

0

391

1

rest_framework.generics.CreateAPIView의 model 속성 유무

0

279

1

bootstrap4

0

484

4

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

1

375

1

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

0

579

3

useState는 필수일까요?

0

272

1

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

0

611

4

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

0

661

1

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

0

569

2

useLocalStorage() 함수 사용여부

0

239

1

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

0

454

1

리듀서의 의미 재확인

0

439

1

simple-jwt Refresh Token 사용 노하우

0

908

2

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

0

687

1

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

0

373

1

is_like_user

0

238

1

related_name 오류

0

278

1

re_path 오류

0

266

1

re_path url

0

255

1

No post matches the given query

0

671

2