LoginSignup
2
3

More than 5 years have passed since last update.

django restframework : add extra method

Last updated at Posted at 2018-07-10

description

  • django restframework viewset へ, 独自 path(method) を追加

how

  • viewset class へ独自 method を追加
  • path は自動生成される

code例

api/views.py
from rest_framework import viewsets
from rest_framework.response import Response
from rest_framework.decorators import action
from api.models import User

from .serializers import UserSerializer


class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all().select_related()
    serializer_class = UserSerializer

    @action(methods=['post'], detail=True)
    def set_password(self, request, pk):
        '''
        指定userへ passwordを設定する
        '''

action設定

  • methods

    • post, get, put... などの指定
    • 複数指定可能
  • detail

    • True の場合, 以下 path となる
      • POST : /api/users/{id}/set_password/
    • False
      • POST : /api/users/set_password/

参考

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3