Django 用户更新不起作用

Django user update is not working

我有这个用户序列化程序:

class SimpleUser(models.Model):
    class meta:
        abstract = True

    email = models.EmailField(_('email address'), blank=False)
    password = models.CharField(_('password'), max_length=128)
    first_name = models.EmailField(_('first name'), blank=True)

class UserSerializer(ModelSerializer):
    class Meta:
        model = SimpleUser

这是我的观点:

class UserView(APIView):
    def patch(self, request, user_id):
        firstname = request.data.get('first_name', '')
        email = request.data.get('email', '')
        password = request.data.get('password', '')

        user = User.objects.get(id=user_id)
        serializer = UserSerializer(instance=user, data=request.data, partial=True)
        if serializer.is_valid():
            serializer.save()
            return Response(status=status.HTTP_200_OK)
        return Response(status=status.HTTP_400_BAD_REQUEST)

我发送了这个 json 请求,但只有 passwordemail 被更新,first_name 没有更新。

{
"password":"6524266",
"email":"HH@bb.com",
"first name":"dsfxvxc"
}

我得到状态 200 OK 并且可以在 serializer.save()

中获取保存的对象

我的代码有什么问题?

您将名字设置为电子邮件字段

first_name = models.EmailField(_('first name'), blank=True)

将其更改为 CharField 或相关字段,类似这样,

first_name = models.CharField(max_length=30)