以下代码返回一个空的json。
def create_account(request):
serializer = UserSerializer(data={'name': request.GET.get('name'), 'surname': request.GET.get('surname'),
'password': request.GET.get('password'), 'email': request.GET.get('email')})
if not serializer.is_valid():
return HttpResponse(status=401,content=serializer.errors)
serializer.save()
return Response(serializer.data)
这是我的序列化器
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('name', 'surname', 'password', 'email')
def create(self, validated_data):
return User.objects.create(**validated_data)
当我发送请求时,serializer.initial_data
已正确填写。 is_valid
正在返回True
,但validated_data
为空。
答案 0 :(得分:2)
看起来您使用的是自定义用户模型,而django.contrib.auth.models.User没有名称和姓氏字段。但它确实有first_name和last_name。尝试将它们用作序列化程序中的字段,因为它们是模型字段。否则你将不得不覆盖to_internal_value,因为这个答案暗示。
Unable to get a non-model field in the validated_data of a Django Rest Framework serializer