code: def assert_valid(self, instance, value=None):
          
          valid = super(Instance, self).assert_valid(instance, value)
          if not valid:
              return False
          if value is None:
              value = instance._get(self.name)
          if isinstance(value, HasProperties):
              value.validate()
          return True
docs: Checks if valid, including HasProperty instances pass validation