見出し画像

Django Rest Frameworkのgenerics (メモ)

DRFのgenericsについての理解をメモしておきたいと思います。
モデルは作られている前提です。

まず、serializers.pyに以下の文を追加。

from rest_framework import serializers

from .models import Model


class SampleSerializer(serializers.ModelSerializer):
   class Meta:
       model = Model
       fields = ['id', ....]

そして、views.pyに以下の文をそれぞれ追加。

from rest_framework import generics
from .models import Model
from .serializer import SampleSerializer


#generics
class List(generics.ListAPIView):
   queryset = Model.objects.all()
   serializer_class = SampleSerializer


class Create(generics.CreateAPIView):
   queryset = Model.objects.all()
   serializer_class = SampleSerializer


class Retrieve(generics.RetrieveAPIView):
   queryset = Model.objects.all()
   serializer_class = SampleSerializer


class Update(generics.UpdateAPIView):
   queryset = Model.objects.all()
   serializer_class = SampleSerializer


class Destroy(generics.DestroyAPIView):
   queryset = Model.objects.all()
   serializer_class = SampleSerializer

そして、urls.pyにルーティングを行います。

from django.urls import path
from .views import *


urlpatterns = [

   path('list/', List.as_view()),
   path('create/', Create.as_view()),
   path('retrieve/<int:pk>/', Retrieve.as_view()),
   path('update/<int:pk>/', Update.as_view()),
   path('destroy/<int:pk>/', Destroy.as_view()),

]

以上のようにすれば簡単にCRUD機能をAPIで実装することができます。

公式のページはこちらです。


この記事が気に入ったらサポートをしてみませんか?