在 Django Rest-Framework API 中进行详细更改的配置文件。我已创建序列化文件和视图文件,但未保存详细信息

问题描述 投票:0回答:1

实际上,我正在做一个项目,我必须修改身份验证系统,以便我能够使用用户名和密码登录。我已成功登录,并且已更改详细信息,但未更改详细信息。请解决此代码并给我一个代码。

我的

serializrs.py

class ProfileSerializer(serializers.ModelSerializer):
    class Meta:
        model = CustomUser
        fields = ("first_name", )

    def create(self, validated_data):
        user_id = Token.objects.get(key=validated_data.auth.key).user_id
        user = User.objects.get(id=user_id)
        first_name = validated_data.get('first_name')
        user.first_name = first_name
        user.save()
        return user

我的

views.py

class ProfileAPIView(APIView):
    serializer_class = ProfileSerializer
    permission_classes = [permissions.AllowAny]
    authentication_classes = [TokenAuthentication]

    def post(self, request):
        serializer = ProfileSerializer(data=request.data)
        if serializer.is_valid(raise_exception=True):
            return Response({"msg":"Profile Update"}, status=status.HTTP_200_OK)
        return Response(serializer.errors, status=status.HTTP_401_UNAUTHORIZED)

解决这个序列化文件并查看文件并给我一个代码。

python django api django-models django-rest-framework
1个回答
0
投票

试试这个,

'views.py'

类 ProfileAPIView(APIView): 序列化器类 = ProfileSerializer 权限类 = [权限.AllowAny] 身份验证类 = [TokenAuthentication]

def post(self, request):
    serializer = ProfileSerializer(data=request.data)
    if serializer.is_valid(raise_exception=True):
        user_id = Token.objects.get(key=request.auth.key).user_id
        user = User.objects.get(id=user_id)
        first_name=serializer.data.get('first_name')
        user.first_name=first_name
        user.save()
        return Response({"msg":"Profile Update"}, status=status.HTTP_200_OK)
    return Response(serializer.errors, status=status.HTTP_401_UNAUTHORIZED)'''

'序列化器.py'

ProfileSerializer 类(serializers.ModelSerializer): 类元: 模型 = 自定义用户 字段=(“名字”,)

© www.soinside.com 2019 - 2024. All rights reserved.