我有这个用户序列化程序:
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
我的代码出了什么问题?
答案 0 :(得分:1)
您将firstname设置为emailfield
first_name = models.EmailField(_('first name'), blank=True)
将此更改为CharField或相关字段,如下所示
first_name = models.CharField(max_length=30)