해결된 질문
작성
·
155
0
안녕하세요.
rest_framework의 소스코드(https://github.com/encode/django-rest-framework/blob/0f39e0124d358b0098261f070175fa8e0359b739/rest_framework/generics.py#L188)를 보면 CreateAPIView 에는 model 속성이 없는 것으로 보입니다. 상위 클래스인 CreateModelMixin과 GenericAPIView를 살펴봐도 이러한 속성은 없는 것으로 보이는데요...
그래서 SignupView에 model 속성을 생략하고 signup을 실행해보았더니 문제가 없었습니다.
class SignupView(CreateAPIView):
# model = get_user_model()
serializer_class = SignupSerializer
permission_class = [ AllowAny ]
모델 속성을 포함한 이유가 있으실까요?
답변 1
0
안녕하세요.
지적해주신 대로 살펴보니 APIView에서는 model 속성이 필요없는 것이 맞습니다. 제가 CreateView와 헷갈렸습니다. CreateView에서는 디폴트 템플릿 파일 경로 계산 등을 위해 model 지정이 필요할 수 있거든요. 습관적으로 넣어버렸네요.
APIView에서는 대개 queryset과 serializer_class 설정이 필요합니다. queryset 설정은 get_querset 호출이나 get_object 호출에서 사용되어지는 데요. CreateModelMixin에서는 get_queryset/get_object 호출없이 시리얼라이저에 의해서 유효성 검사 및 생성만 되어지니 queryset 설정은 없어도 동작합니다.
알려주셔서 감사드립니다. :-)