inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

ViewSet과 Router

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

471

코해

작성한 질문수 16

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

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