我有使用用户配置文件的视图。实现了put和delete方法。如何添加修补程序方法或使用仅更新一个字段(创建/更新化身字段)的方法?在
在视图.py公司名称:
from rest_framework import permissions
from rest_framework.generics import RetrieveAPIView
from rest_framework.mixins import UpdateModelMixin, DestroyModelMixin
from rest_framework.parsers import MultiPartParser, FormParser
from rest_framework.serializers import ValidationError
from djangorestframework_camel_case.parser import CamelCaseJSONParser
from api.models import User
from api.permissions import IsOwnerOrReadOnly
from api.auth.serializers import username_validation
from .serializers import AccountSerializer
class AccountAPIView(RetrieveAPIView, UpdateModelMixin, DestroyModelMixin):
queryset = User.objects.all()
permission_classes = (IsOwnerOrReadOnly, permissions.IsAuthenticated)
serializer_class = AccountSerializer
parser_classes = (MultiPartParser, FormParser, CamelCaseJSONParser)
def delete(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs)
def put(self, request, *args, **kwargs):
user = self.request.user
new_username = self.request.data.get('username', None)
if new_username and user.username != new_username:
try:
username_validation(new_username)
except ValidationError as error:
Response(str(error), status=status.HTTP_400_BAD_REQUEST)
return self.update(request, *args, **kwargs)
在序列化程序.py公司名称:
^{pr2}$
添加
在序列化程序中启用部分编辑
最简单的解决方案就是使用与put和delete方法相同的主体:
相关问题 更多 >
编程相关推荐