I have a quick question about overriding is_valid
. Self is a rest_framework.serializers.ModelSerializer
. I'm trying to figure out if there is a better way to modify internal data than reading/writing to the data._kwargs
property. I know I can get the data pre-validation via a self.get_initial()
call. But I'd also like to be able to write data. The purpose here is to change Image Data, if not properly formatted, into a format our models accept so that our API is more flexible. I know there may be other ways to accomplish my goals, but my generic question is
Is there a good method to set data on a serializer before is_valid() is called?
because it applies to other cases too. Thank you!
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