我有一个关于重写
is_valid
的问题。Self是一个rest_framework.serializers.ModelSerializer
。我试图找出是否有一种更好的方式来修改内部数据,而不是读/写data._kwargs
属性。我知道我可以通过调用self.get_initial()
获取经过预验证的数据。但我也想能够编写数据。这里的目的是将未正确格式化的图像数据转换为模型可接受的格式,以使我们的API更加灵活。我知道还可能有其他实现我的目标的方法,但我的一般性问题是:
因为它适用于其他情况。谢谢!在调用is_valid()之前有没有一种很好的方法来设置序列化器上的数据?
def is_valid(self, raise_exception=True):
imageHandler = ImageHandler()
if "member_profile" in self._kwargs["data"]:
if "profile_image" in self._kwargs["data"]["member_profile"]:
self._kwargs["data"]["member_profile"]["profile_image"] = imageHandler.convertImage(
self._kwargs["data"]["member_profile"]["profile_image"])
else:
self._kwargs["data"]["member_profile"] = {}
valid = super(AuthUserModelSerializer, self).is_valid(raise_exception=raise_exception)
return valid