def _handle_wrong_field(cls, field_name, field_type):
        """Raise an exception whenever an invalid attribute with
        the given name was attempted to be set to or retrieved from
        this model class.

        Assumes that the given field is invalid, without making any checks.

        Also adds an entry to the logs.
        """
        if field_type == ATTR_TYPE_READ:
            field_type = 'readable'
        elif field_type == ATTR_TYPE_WRITE:
            field_type = 'writable'
        elif field_type == ATTR_TYPE_URL:
            field_type = 'URL'
        else:
            raise AttributeError('Invalid attribute type: {}'.format(
                field_type
            ))

        msg = '{} has no {} attribute "{}"'.format(
            cls.__name__,
            field_type,
            field_name
        )
        _logger.error(msg)
        raise AttributeError(msg)
Raise an exception whenever an invalid attribute with
        the given name was attempted to be set to or retrieved from
        this model class.

        Assumes that the given field is invalid, without making any checks.

        Also adds an entry to the logs.