Django用户更新无法正常工作

时间:2016-12-06 07:46:00

标签: python django patch

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

furnitureList = new ArrayList<String>();
for(Map.Entry<String, List<String>> entry : furnitureMap.entrySet()) 
{
   String furnitureKey = entry.getKey();

   for(String key : entry.getValue() )
    {
       if(furnitureKey!=null && furnitureKey.equalsIgnoreCase("FURNITURE_NAMES"))
        {                   
          furnitureList.add(key);                                                       
        }
    }
}

这是我的观点:

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

我发送此json请求,但只更新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) password并且email未更新。

first_name

我获得状态{ "password":"6524266", "email":"HH@bb.com", "first name":"dsfxvxc" } ,可以在200 OK

中获取已保存的对象

我的代码出了什么问题?

1 个答案:

答案 0 :(得分:1)

您将firstname设置为emailfield

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

将此更改为CharField或相关字段,如下所示

first_name = models.CharField(max_length=30)