【发布时间】:2015-09-25 17:31:32
【问题描述】:
我有一个关于覆盖is_valid 的简短问题。自我是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
【问题讨论】:
标签: python django overriding django-rest-framework