コード例 #1
0
ファイル: schemas.py プロジェクト: pythseq/MegaQC
    def get_resource_links(self, item):
        kwargs = resolve_params(item, self.opts.self_url_kwargs or {})
        for arg in kwargs.values():
            if arg is None:
                return None

        return super().get_resource_links(item)
コード例 #2
0
 def get_top_level_links(self, data, many):
     """ Overriding base implementation to support serialization as a related resource. """
     self_link = None
     if self.self_related_route:
         if many:
             kwargs = self.self_related_route_kwargs
         else:
             kwargs = resolve_params(data, self.self_related_route_kwargs)
         self_link = self.generate_url(self.self_related_route, **kwargs)
     if self_link:
         return {"self": self_link}
     return super().get_top_level_links(data, many)
コード例 #3
0
ファイル: fields.py プロジェクト: kaglowka/danyzespolapi
    def get_related_url(self, obj):
        if self.related_url:
            params = resolve_params(obj,
                                    self.related_url_kwargs,
                                    default=self.default)
            non_null_params = {
                key: value
                for key, value in params.items() if value is not None
            }
            if non_null_params:
                attr = getattr(obj, self.load_from)
                ret = {
                    'href': self.related_url.format(**non_null_params),
                }
                if self.many:
                    count = attr.count() if isinstance(
                        attr, BaseManager) else len(attr)
                    ret['meta'] = {'count': count}

                return ret
        return None
コード例 #4
0
ファイル: fields.py プロジェクト: pOctav/starlette-jsonapi
 def get_url(self, obj, route_name, **kwargs):
     if route_name and self.parent and self.parent.app and isinstance(
             self.parent.app, Starlette):
         kwargs = resolve_params(obj, kwargs, default=self.default)
         return self.parent.app.url_path_for(route_name, **kwargs)
     return None