From 4b691c402707775c3048a90531024f3bc5be6f91 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Thu, 20 Sep 2012 13:06:27 +0100 Subject: Change package name: djangorestframework -> rest_framework --- rest_framework/reverse.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 rest_framework/reverse.py (limited to 'rest_framework/reverse.py') diff --git a/rest_framework/reverse.py b/rest_framework/reverse.py new file mode 100644 index 00000000..ba663f98 --- /dev/null +++ b/rest_framework/reverse.py @@ -0,0 +1,20 @@ +""" +Provide reverse functions that return fully qualified URLs +""" +from django.core.urlresolvers import reverse as django_reverse +from django.utils.functional import lazy + + +def reverse(viewname, *args, **kwargs): + """ + Same as `django.core.urlresolvers.reverse`, but optionally takes a request + and returns a fully qualified URL, using the request to get the base URL. + """ + request = kwargs.pop('request', None) + url = django_reverse(viewname, *args, **kwargs) + if request: + return request.build_absolute_uri(url) + return url + + +reverse_lazy = lazy(reverse, str) -- cgit v1.2.3 From d206c686a643b7cc720743d8dab207e8ad0280f8 Mon Sep 17 00:00:00 2001 From: Tom Christie Date: Mon, 29 Oct 2012 17:08:38 +0000 Subject: Fixes for urls with suffixes --- rest_framework/reverse.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'rest_framework/reverse.py') diff --git a/rest_framework/reverse.py b/rest_framework/reverse.py index ba663f98..c9db02f0 100644 --- a/rest_framework/reverse.py +++ b/rest_framework/reverse.py @@ -5,13 +5,15 @@ from django.core.urlresolvers import reverse as django_reverse from django.utils.functional import lazy -def reverse(viewname, *args, **kwargs): +def reverse(viewname, args=None, kwargs=None, request=None, format=None, **extra): """ Same as `django.core.urlresolvers.reverse`, but optionally takes a request and returns a fully qualified URL, using the request to get the base URL. """ - request = kwargs.pop('request', None) - url = django_reverse(viewname, *args, **kwargs) + if format is not None: + kwargs = kwargs or {} + kwargs['format'] = format + url = django_reverse(viewname, args=args, kwargs=kwargs, **extra) if request: return request.build_absolute_uri(url) return url -- cgit v1.2.3