mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-02 19:40:13 +03:00
Use the namespace from the current url
This commit is contained in:
parent
57a51f790b
commit
3a529d4af3
|
@ -4,6 +4,9 @@ Provide reverse functions that return fully qualified URLs
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
from django.core.urlresolvers import reverse as django_reverse
|
from django.core.urlresolvers import reverse as django_reverse
|
||||||
from django.utils.functional import lazy
|
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):
|
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:
|
if format is not None:
|
||||||
kwargs = kwargs or {}
|
kwargs = kwargs or {}
|
||||||
kwargs['format'] = format
|
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:
|
if request:
|
||||||
return request.build_absolute_uri(url)
|
return request.build_absolute_uri(url)
|
||||||
return url
|
return url
|
||||||
|
|
Loading…
Reference in New Issue
Block a user