Django Rest Framework中的PATCH Null值时不允许使用方法GET

时间:2018-01-20 08:54:45

标签: python django django-rest-framework

我在使用扩展用户模型的Django Rest Framework中遇到PATCH Null值问题。请看看我的问题!

序列化程序:,配置文件是扩展用户模型

class UserEditSerializer(ModelSerializer):
    job_title = serializers.CharField(source='profile.job_title')
    class Meta:
        model = User
        fields = [
            'username',
            'job_title',
        ]

    def update(self, instance, validated_data):
        instance.username = validated_data.get('username', instance.username)
        instance.save()
        if (validated_data.get('profile') is not None):
            profile_data = validated_data.pop('profile')
            profile = instance.profile
            profile.job_title = profile_data.get('job_title', profile.job_title)

我的观看次数:

class UserUpdateAPIView(ReadOnlyModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserEditSerializer
    permission_classes = (IsAuthenticated,)

    @detail_route(methods=['PATCH'])
    def edit(self, request):
        user_obj = User.objects.get(id=request.user.id)
        serializer = UserEditSerializer(user_obj, data=request.data, partial=True)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        return JsonResponse({'message': 'Error'}, status=500)

我对服务器的api补丁请求:

{
    "job_title": ""
}

错误:

{
    "detail": "Method \"GET\" not allowed."
}

错误照片

enter image description here

0 个答案:

没有答案