コード例 #1
0
ファイル: __init__.py プロジェクト: python-odin/odin
        The field object is used to determine certain automatic mapping operations (ie Lists of Odin resources to other
        Odin resources).

        :return: Dictionary
        """
        raise NotImplementedError()


class ResourceFieldResolver(FieldResolverBase):
    """Field resolver for Odin resource objects."""
    def get_field_dict(self):
        """Return a dictionary of fields along with their names."""
        return getmeta(self.obj).field_map


registration.register_field_resolver(ResourceFieldResolver, Resource)


class MappingMeta(type):
    """
    Meta-class for all Mappings
    """
    def __new__(mcs, name, bases, attrs):
        super_new = super(MappingMeta, mcs).__new__

        # attrs will never be empty for classes declared in the standard way
        # (ie. with the `class` keyword). This is quite robust.
        if name == 'NewBase' and attrs == {}:
            return super_new(mcs, name, bases, attrs)

        parents = [
コード例 #2
0
ファイル: models.py プロジェクト: timsavage/baldr
    from odin.codecs import msgpack_codec
except ImportError:
    msgpack_codec = None


# Register support for Django Models and Validators

class ModelFieldResolver(FieldResolverBase):
    """
    Field resolver for Django Models
    """
    def get_field_dict(self):
        meta = self.obj._meta
        return {f.attname: f for f in meta.fields}

registration.register_field_resolver(ModelFieldResolver, models.Model)


# Register a the Django ValidationError exception with Odin.
def django_validation_error_handler(exception, field, errors):
    if hasattr(exception, 'code') and exception.code in field.error_messages:
        message = field.error_messages[exception.code]
        if exception.params:
            message = message % exception.params
        errors.append(message)
    else:
        errors.extend(exception.messages)

registration.register_validation_error_handler(ValidationError, django_validation_error_handler)

コード例 #3
0
ファイル: __init__.py プロジェクト: thedrow/odin
        The field object is used to determine certain automatic mapping operations (ie Lists of Odin resources to other
        Odin resources).

        :return: Dictionary
        """
        raise NotImplementedError()


class ResourceFieldResolver(FieldResolverBase):
    """Field resolver for Odin resource objects."""
    def get_field_dict(self):
        """Return a dictionary of fields along with their names."""
        return getmeta(self.obj).field_map


registration.register_field_resolver(ResourceFieldResolver, Resource)


class MappingMeta(type):
    """
    Meta-class for all Mappings
    """
    def __new__(mcs, name, bases, attrs):
        super_new = super(MappingMeta, mcs).__new__

        # attrs will never be empty for classes declared in the standard way
        # (ie. with the `class` keyword). This is quite robust.
        if name == 'NewBase' and attrs == {}:
            return super_new(mcs, name, bases, attrs)

        parents = [
コード例 #4
0
ファイル: models.py プロジェクト: sobolevn/baldr
    from odin.codecs import msgpack_codec
except ImportError:
    msgpack_codec = None


# Register support for Django Models and Validators

class ModelFieldResolver(FieldResolverBase):
    """
    Field resolver for Django Models
    """
    def get_field_dict(self):
        meta = self.obj._meta
        return {f.attname: f for f in meta.fields}

registration.register_field_resolver(ModelFieldResolver, models.Model)


# Register a the Django ValidationError exception with Odin.
def django_validation_error_handler(exception, field, errors):
    if hasattr(exception, 'code') and exception.code in field.error_messages:
        message = field.error_messages[exception.code]
        if exception.params:
            message = message % exception.params
        errors.append(message)
    else:
        errors.extend(exception.messages)

registration.register_validation_error_handler(ValidationError, django_validation_error_handler)