示例#1
0
def ranked_post_details(number_of_posts=None):
    db_posts = Post.select().where(Post.hidden == 0)
    post_details = [fields.marshal(post, post_fields) for post in db_posts]
    if number_of_posts:
        return post_details[number_of_posts:]
    else:
        return post_details
示例#2
0
    def output(self, key, obj):
        # Copied from upstream NestedField
        value = base_fields.get_value(
            key if self.attribute is None else self.attribute, obj)
        if value is None:
            if self.allow_null:
                return None
            elif self.default is not None:
                return self.default

        # Handle mappings
        if not hasattr(value, '__class__'):
            raise ValueError('Polymorph field only accept class instances')

        candidates = [
            fields for cls, fields in iteritems(self.mapping)
            if isinstance(value, cls)
        ]

        if len(candidates) <= 0:
            raise ValueError('Unknown class: ' + value.__class__.__name__)
        elif len(candidates) > 1:
            raise ValueError('Unable to determine a candidate for: ' +
                             value.__class__.__name__)
        else:
            return base_fields.marshal(value, candidates[0].resolved)
示例#3
0
 def output(self, key, obj):
     if not obj or not obj.HasField(key):
         value = None
     else:
         value = fields.get_value(key if self.attribute is None else self.attribute, obj)
     if self.allow_null and value is None:
         return None
     return fields.marshal(value, self.nested, self.display_null)
示例#4
0
    def output(self, key, obj):
        # Copied from upstream NestedField
        value = base_fields.get_value(key if self.attribute is None else self.attribute, obj)
        if value is None:
            if self.allow_null:
                return None
            elif self.default is not None:
                return self.default

        # Handle mappings
        if not hasattr(value, '__class__'):
            raise ValueError('Polymorph field only accept class instances')

        candidates = [fields for cls, fields in iteritems(self.mapping) if isinstance(value, cls)]

        if len(candidates) <= 0:
            raise ValueError('Unknown class: ' + value.__class__.__name__)
        elif len(candidates) > 1:
            raise ValueError('Unable to determine a candidate for: ' + value.__class__.__name__)
        else:
            return base_fields.marshal(value, candidates[0].resolved)
示例#5
0
 def get(self, pk):
     post = db_mods.find_post(pk)
     return fields.marshal(post, db_mods.post_fields)