From e6c9f89a123756382cbfa7196ae631e41ef3feaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EB=8F=99=ED=99=98?= Date: Thu, 25 May 2017 19:13:45 +0900 Subject: [PATCH] Fixed curly bracket in regexp of @list_route --- rest_framework/routers.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rest_framework/routers.py b/rest_framework/routers.py index fce968aa0..81f8ebf78 100644 --- a/rest_framework/routers.py +++ b/rest_framework/routers.py @@ -35,6 +35,12 @@ DynamicDetailRoute = namedtuple('DynamicDetailRoute', ['url', 'name', 'initkwarg DynamicListRoute = namedtuple('DynamicListRoute', ['url', 'name', 'initkwargs']) +def replace_curly_brackets(url_path): + if ('{' and '}') in url_path: + url_path = url_path.replace('{', '{{').replace('}', '}}') + return url_path + + def replace_methodname(format_string, methodname): """ Partially format a format_string, swapping out any @@ -178,6 +184,7 @@ class SimpleRouter(BaseRouter): initkwargs = route.initkwargs.copy() initkwargs.update(method_kwargs) url_path = initkwargs.pop("url_path", None) or methodname + url_path = replace_curly_brackets(url_path) url_name = initkwargs.pop("url_name", None) or url_path ret.append(Route( url=replace_methodname(route.url, url_path),