def get_url_with_resource(request): api_root_dict = OrderedDict() viewsets = {} ret = OrderedDict() list_name = router.routes[0].name for prefix, viewset, basename in router.registry: api_root_dict[prefix] = list_name.format(basename=basename) viewsets[prefix] = viewset sorted_api_root_dict = OrderedDict(sorted(api_root_dict.items())) for key, url_name in sorted_api_root_dict.items(): name = URL_ARG_RE.sub(r'{\1}', key) ret[name] = None urlargs = [_get_arg_value(arg[0]) for arg in URL_ARG_RE.findall(key)] for getter in [_get_list_url, _get_nested_list_url, _get_detail_url]: try: if getter == _get_list_url: ret[name] = urldecode( getter(url_name, viewsets[key], request)) else: ret[name] = urldecode( getter(url_name, viewsets[key], request, urlargs)) break except NoReverseMatch: continue return ret
def get_rpm_mapping_template(self, obj): """url""" return urldecode(reverse( 'composerpmmapping-detail', args=[obj.compose_id, '{{package}}'], request=self.context['request'] ))
def get_url_with_resource(request): api_root_dict = OrderedDict() viewsets = {} ret = OrderedDict() list_name = router.routes[0].name for prefix, viewset, basename in router.registry: api_root_dict[prefix] = list_name.format(basename=basename) viewsets[prefix] = viewset sorted_api_root_dict = OrderedDict(sorted(api_root_dict.items())) for key, url_name in sorted_api_root_dict.items(): name = URL_ARG_RE.sub(r'{\1}', key) ret[name] = None urlargs = [_get_arg_value(arg[0]) for arg in URL_ARG_RE.findall(key)] for getter in [_get_list_url, _get_nested_list_url, _get_detail_url]: try: if getter == _get_list_url: ret[name] = urldecode(getter(url_name, viewsets[key], request)) else: ret[name] = urldecode(getter(url_name, viewsets[key], request, urlargs)) break except NoReverseMatch: continue return ret
def replace_url(match): type = match.groupdict()['type'] parts = match.groupdict()['details'].split(':') url_name = parts[0] args = parts[1:] if type == 'LINK': args = ['{%s}' % arg for arg in args] try: if type == 'LINK': url = reverse(url_name, args=args) return '[`%s`](%s)' % (urldecode(url), url) return reverse(url_name, args=args, request=self.request) except NoReverseMatch: logger = logging.getLogger(__name__) logger.error('Bad URL specifier <%s> in %s.%s' % (match.group(0), view.__class__.__name__, method), exc_info=sys.exc_info()) return 'BAD URL'
def get_rpm_mapping_template(self, obj): """url""" return urldecode( reverse("composerpmmapping-detail", args=[obj.compose_id, "{{package}}"], request=self.context["request"]) )