aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/versioning.py
diff options
context:
space:
mode:
authorTom Christie2015-02-04 23:32:48 +0000
committerTom Christie2015-02-04 23:32:48 +0000
commit83673e8f74abc6dfd77e9b87eca6da9ec319da2b (patch)
tree417c9ef574d96d15c2771960211f0498c57ce3c8 /rest_framework/versioning.py
parent41b213414df57d7e39f1bbf3aaa35a1b033e89a3 (diff)
parent030f01afdbcd4018a288250ef1f4c12de28e63bb (diff)
downloaddjango-rest-framework-83673e8f74abc6dfd77e9b87eca6da9ec319da2b.tar.bz2
Merge branch 'version-3.1-2489' of git://github.com/brandoncazander/django-rest-framework into brandoncazander-version-3.1-2489
Diffstat (limited to 'rest_framework/versioning.py')
-rw-r--r--rest_framework/versioning.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/rest_framework/versioning.py b/rest_framework/versioning.py
index a07b629f..a76da17a 100644
--- a/rest_framework/versioning.py
+++ b/rest_framework/versioning.py
@@ -1,6 +1,8 @@
# coding: utf-8
from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
+from django.core.urlresolvers import resolve as django_resolve
+from django.core.urlresolvers import ResolverMatch
from rest_framework import exceptions
from rest_framework.compat import unicode_http_header
from rest_framework.reverse import _reverse
@@ -24,6 +26,9 @@ class BaseVersioning(object):
def reverse(self, viewname, args=None, kwargs=None, request=None, format=None, **extra):
return _reverse(viewname, args, kwargs, request, format, **extra)
+ def resolve(self, path, urlconf=None):
+ return django_resolve(path, urlconf)
+
def is_allowed_version(self, version):
if not self.allowed_versions:
return True
@@ -127,6 +132,17 @@ class NamespaceVersioning(BaseVersioning):
viewname, args, kwargs, request, format, **extra
)
+ def resolve(self, path, urlconf=None, request=None):
+ match = django_resolve(path, urlconf)
+ if match.namespace:
+ _, view_name = match.view_name.split(':')
+ return ResolverMatch(func=match.func,
+ args=match.args,
+ kwargs=match.kwargs,
+ url_name=view_name,
+ app_name=match.app_name)
+ return match
+
class HostNameVersioning(BaseVersioning):
"""