Skip to content

Instantly share code, notes, and snippets.

@readevalprint
Last active December 23, 2015 20:19
Show Gist options
  • Select an option

  • Save readevalprint/6688216 to your computer and use it in GitHub Desktop.

Select an option

Save readevalprint/6688216 to your computer and use it in GitHub Desktop.
diff --git a/rest_framework/reverse.py b/rest_framework/reverse.py
index a51b07f..ceed09f 100644
--- a/rest_framework/reverse.py
+++ b/rest_framework/reverse.py
@@ -4,6 +4,9 @@ Provide reverse functions that return fully qualified URLs
from __future__ import unicode_literals
from django.core.urlresolvers import reverse as django_reverse
from django.utils.functional import lazy
+from django.core.urlresolvers import resolve
+from django.http import Http404
+
def reverse(viewname, args=None, kwargs=None, request=None, format=None, **extra):
@@ -14,7 +17,19 @@ def reverse(viewname, args=None, kwargs=None, request=None, format=None, **extra
if format is not None:
kwargs = kwargs or {}
kwargs['format'] = format
- url = django_reverse(viewname, args=args, kwargs=kwargs, **extra)
+
+ try:
+ namespace=resolve(request.path).namespace
+ except Http404:
+ namespace=None
+
+ if namespace:
+ viewname = '{namespace}:{viewname}'.format(namespace=namespace,
+ viewname=viewname)
+
+ url = django_reverse(viewname, args=args, kwargs=kwargs,
+ #current_app=resolve(request.path).app_name,
+ **extra)
if request:
return request.build_absolute_uri(url)
return url
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment