【发布时间】:2017-11-27 14:16:57
【问题描述】:
我需要使用基于 APIView 类来编辑用户详细信息(如 first_name 、 last_name )的代码。下面给出了 serializers.py 和 views.py ,但它没有根据用户详细信息进行更改。我正在传递令牌以进行用户身份验证。任何帮助将不胜感激。
Serializers.py
class UserEditSerializer(serializers.Serializer):
email = serializers.EmailField(required=True)
first_name = serializers.CharField(required=True)
last_name = serializers.CharField(required=True)
def update(self, validated_data, instance):
instance.first_name = validated_data.get('first_name')
instance.email = validated_data.get('email')
instance.last_name = validated_data.get('last_name')
instance.save()
return instance
Views.py
class UserEditProfile(APIView):
authentication_classes = (authentication.TokenAuthentication,)
permission_classes = (permissions.IsAuthenticated,)
def get_object(self):
return self.request.user
def post(self, request):
self.object = self.get_object()
serializer = UserEditSerializer(data=request.data)
if serializer.is_valid():
self.object.save()
return Response(serializer.data, status=status.HTTP_200_OK)
else:
return Response(serializer.errors,status=status.HTTP_400_BAD_REQUEST)
【问题讨论】:
标签: python django api django-rest-framework