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で実装することができます。
公式のページはこちらです。
この記事が気に入ったらサポートをしてみませんか?