Вы должны использовать представления на основе классов DRF .
Использование класса APIView во многом аналогично использованию обычного класса View, как обычно, входящий запрос отправляется соответствующему методу-обработчику, такому как .get () или .post ().
Вот пример с обработчиком get
и post
. Я абстрагировал код для обновления пользователя до вспомогательного метода, который вы можете создать - ваша реализация будет отличаться:
from rest_framework.views import APIView
from rest_framework.response import Response
from django.contrib.auth.models import User
from my_project.accounts.helpers import update_user
class UserView(APIView):
def get(self, request, *args, **kwargs):
"""
Return a user.
"""
user_data = User.objects.get(pk=kwargs['pk']).values()
return Response(user_data)
def patch(self, request, *args, **kwargs):
user = User.objects.get(pk=kwargs['pk'])
data = request.POST
update_user(user, data)
return Response('Updated user!')
Вы также можете посмотреть ViewSets , которые предоставляют простое управление операциями CRUD.