mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-07 22:04:48 +03:00
Merge 0c13037966
into 0777cb7577
This commit is contained in:
commit
a8da2f2b6b
|
@ -112,13 +112,13 @@ class NamespaceVersioning(BaseVersioning):
|
|||
Host: example.com
|
||||
Accept: application/json
|
||||
"""
|
||||
invalid_version_message = _('Invalid version in URL path.')
|
||||
invalid_version_message = _('Invalid version in namespace.')
|
||||
|
||||
def determine_version(self, request, *args, **kwargs):
|
||||
resolver_match = getattr(request, 'resolver_match', None)
|
||||
if (resolver_match is None or not resolver_match.namespace):
|
||||
return self.default_version
|
||||
version = resolver_match.namespace
|
||||
version = resolver_match.namespace.split(':')[0]
|
||||
if not self.is_allowed_version(version):
|
||||
raise exceptions.NotFound(self.invalid_version_message)
|
||||
return version
|
||||
|
|
|
@ -271,8 +271,12 @@ class TestHyperlinkedRelatedField(UsingURLPatterns, APITestCase):
|
|||
|
||||
|
||||
class TestNamespaceVersioningHyperlinkedRelatedFieldScheme(UsingURLPatterns, APITestCase):
|
||||
nested = [
|
||||
url(r'^namespaced/(?P<pk>\d+)/$', dummy_pk_view, name='nested'),
|
||||
]
|
||||
included = [
|
||||
url(r'^namespaced/(?P<pk>\d+)/$', dummy_pk_view, name='namespaced'),
|
||||
url(r'^nested/', include(nested, namespace='nested-namespace'))
|
||||
]
|
||||
|
||||
urlpatterns = [
|
||||
|
@ -296,6 +300,10 @@ class TestNamespaceVersioningHyperlinkedRelatedFieldScheme(UsingURLPatterns, API
|
|||
field = self._create_field('namespaced', 'v1')
|
||||
assert field.to_representation(PKOnlyObject(3)) == 'http://testserver/v1/namespaced/3/'
|
||||
|
||||
def test_api_url_is_properly_reversed_with_nested(self):
|
||||
field = self._create_field('nested', 'v1:nested-namespace')
|
||||
assert field.to_representation(PKOnlyObject(3)) == 'http://testserver/v1/nested/namespaced/3/'
|
||||
|
||||
def test_api_url_is_properly_reversed_with_v2(self):
|
||||
field = self._create_field('namespaced', 'v2')
|
||||
assert field.to_representation(PKOnlyObject(5)) == 'http://testserver/v2/namespaced/5/'
|
||||
|
|
Loading…
Reference in New Issue
Block a user