Я использую django rest Framework и создал представление для обновления пользователя.
Вот мой взгляд:
def put(self, request, *args, **kwargs):
authorization =UserSuitsPermissions().superuser(request.user)
userpk = kwargs.get('pk', 0)
user = get_object_or_404(STUser, pk=userpk)
if not authorization:
if request.user['id'] == user.id:
authorization = True
if authorization:
serializeddata = UserSerializer(data=request.data)
if serializeddata.is_valid(raise_exception=True):
data = serializeddata.validated_data
user.__dict__.update(**data)
user.save()
serialzed = UserSerializer(user)
return Response(serialzed.data)
return Response(status=status.HTTP_401_UNAUTHORIZED)
теперь в этом связанном вопросе они используют универсальное представление и используют сериализатор для обновления пользовательского экземпляра:
Пользователь обновления Django DRF
с принятым ответом:
def update(self, request, *args, **kwargs):
serializer = self.serializer_class(request.user, data=request.data, partial=True)
serializer.is_valid(raise_exception=True)
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
Я не использую общий вид и, по правде говоря, я над ними. Я не ценю это. поэтому вопрос в том, как мы можем обновить объект пользователя через представление API?
Мой самый большой вопрос: имеет ли эта строка в принятом ответе отношение к моему коду?
serializer = self.serializer_class(request.user, data=request.data, partial=True)