-
[Django] Model View Sets 사용하기파이썬/Django 2023. 1. 12. 16:44728x90반응형
📁 categories/serializers.py
from rest_framework import serializers from .models import Category class CategorySerializer(serializers.ModelSerializer): class Meta: model = Category # fields = 어떤 필드를 보이게 할지 설정 # 모든 필드 보이게 하기 fields = "__all__"
카테고리라는 모델을 serializer 번역기에 객체를 설정해줌
자동으로 create update등의 메소드가 생성된다.
다만 보여줄 필드는 선택해야 함
제외시킬 필드를 고르기
class Meta: # 제외시킬 필드 고르기 exclude = ( "created_at", )
보여줄 필드를 고르기
class Meta: # 포함시킬 필드 고르기 include = ( "name", "kind", )
Model View Set 사용하기
일단 ModelViewSet을 import 해준다.
from rest_framework.viewsets import ModelViewSet
그리고 사용할 ViewSet의 클래스를 만들어주고 인자로 ModelViewSet을 받아주는데
이 클래스는 두가지 속성이 필요하다.
1. Serializser가 뭔지 알아야 함
2. ViewSet의 Object가 뭔지 알아야 함.
from rest_framework.viewsets import ModelViewSet from .models import Category from .serializers import CategorySerializer # 인자로 APIView를 받는다 class CategoryViewSet(ModelViewSet # 1. Serializser 설정 serializer_class = CategorySerializer # 2. ViewSet의 Object 알려주기 queryset = Category.objects.all()
ViewSet의 메소드 설정하기
ViewSet의 메소드는 urls.py에 설정해준다.
아래처럼 viewset의 메소드와 http메소드를 연결해주기만 하면 됨
"get": "list", "post": "create",
from django.urls import path from . import views urlpatterns = [ path( "", views.CategoryViewSet.as_view( { "get": "list", "post": "create", } ), ), path( "<int:pk>", views.CategoryViewSet.as_view( { "get": "retrieve", "put": "partial_update", "delete": "destroy", } ), ), ]
LIST'파이썬 > Django' 카테고리의 다른 글
[Django] Permission_classes 사용하여 인증하기 (feat.DRF) (0) 2023.01.16 [Django] APIView로 api 만들기 (0) 2023.01.13 [Django] APIView를 이용한 views.py 리팩토링 1 (0) 2023.01.11 [Django] Rest 프레임워크로 [PUT] API 만들기 (feat. api_view, serializer) (0) 2023.01.10 [Django] Rest 프레임워크로 [POST] API 만들기 (feat. api_view, serializer) (0) 2023.01.09