Django用户更新不工作

2024-04-25 21:13:21 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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()中获得保存的对象

我的代码怎么了?你知道吗


Tags: nameidtruedatagetmodelsemailrequest
1条回答
网友
1楼 · 发布于 2024-04-25 21:13:21

您将firstname设置为emailfield

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

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

first_name = models.CharField(max_length=30)

相关问题 更多 >