Python
Django
WebAPI
django-rest-framework
Django2.0

Django REST Framework でのCRUD実装時の基本構成 UpdateAPIView

転載元ブログ情報

この記事は自分のブログの転載です。是非遊びに来てください〜

Django REST Framework メモ :: CRUD :: UpdateAPIView
http://k-mawa.hateblo.jp/entry/2018/01/19/021346

参考:公式リファレンス
[http://www.django-rest-framework.org/#api-guide:embed:cite]

Django REST Framework の基本構成メモです。
CRUDのうちのUpdateの構成です
個別のインスタンスを呼び出すので引数つきのURLになります。

  • Django2

api/urls.py

from django.urls import path
from .views import (
    □[クラス名]□UpdateAPIView,
    )

urlpatterns = [
   path('detail_articles/<int:pk>/editing', □[クラス名]□UpdateAPIView.as_view(), name='updating')
]

※引数とpath設定がDjango1系とは異なります

[http://k-mawa.hateblo.jp/entry/2018/01/18/235310:embed:cite]

api/serializers.py

from rest_framework.serializers import (
    ModelSerializer,
    )


from □[アプリ名]□.models import *

class □[クラス名]□DetailSerializer(ModelSerializer):
    class Meta:
        model = □[クラス名]□
        fields = [
            '■[フィールド名]■',
            '■[フィールド名]■',
        ]

※Detailの表示のときにつかったSerializerを共用できるのがポイントあたらしくSerializerつくらなくてOK

api/views.py

from rest_framework.generics import (
    UpdateAPIView
(もしくはRetrieveUpdateAPIViewでもOK)
    )

from □[アプリ名]□.models import *

from .serializers import (
    □[クラス名]□DetailSerializer, 
    )

class □[クラス名]□UpdateAPIView(UpdateAPIView):
    queryset = □[クラス名]□.objects.all()
    serializer_class = □[クラス名]□DetailSerializer
    lookup_field = 'pk'

基本構成はこんな感じです。