'Validate empty values, and either:
* Raise `ValidationError`, indicating invalid data.
* Raise `SkipField`, indicating that the field should be ignored.
* Return (True, data), indicating an empty value that should be
returned without any further validation being applied.
* Return (False, data), indicating a non-empty value, that should
have validation applied as normal.'

def validate_empty_values(self, data):

    if self.read_only:
        return (True, self.get_default())
    if (data is empty):
        if getattr(self.root, u'partial', False):
            raise SkipField()
        if self.required:
            self.fail(u'required')
        return (True, self.get_default())
    if (data is None):
        if (not self.allow_null):
            self.fail(u'null')
        return (True, None)
    return (False, data)
