我试图将字典序列化为关系序列化器,数据序列化很好,但验证器返回false
RelationshipSerializer:
class RelationshipSerializer(serializers.ModelSerializer):
user = UserSerializer(read_only=False)
related_user = UserSerializer(read_only=False)
class Meta:
model = models.Relationship
fields = (
'user',
'related_user',
)
视图:
related_user_id = body["related_user"]
related_user = models.User.objects.get(id=related_user_id)
user = self.get_object()
user_serializer = serializers.UserSerializer(user).data
related_user_serializer = serializers.UserSerializer(related_user).data
# user_serializer and related_user_serializer return valid data.
data = {"user": user_serializer, "related_user": related_user_serializer}
serializer = serializers.RelationshipSerializer(data=data)
# Serializer works fine, it prints out data correctly
serializer.is_valid() # Returns false
return Response(serializer.data)
当我记录serializer.errors
我得到
{
"required": "This field is required.",
"null": "This field may not be null.",
"invalid": "Invalid data. Expected a dictionary, but got {datatype}."
}
我尝试将我的序列化器字段设置为null = True
和required = False
,但仍然没有运气
在序列化器字段中尝试allow_blank和allow_null:
user = UserSerializer(read_only=False, allow_blank=True, allow_null=True)
related_user = UserSerializer(read_only=False, allow_blank=True, allow_null=True)