1
0
mirror of https://github.com/ansible/awx.git synced 2024-11-01 08:21:15 +03:00

Merge pull request #6741 from jangsutsr/6711_trim_querystring_from_reverse_outcome

Trim querystring from reverse outcome
This commit is contained in:
Aaron Tan 2017-06-29 12:16:54 -04:00 committed by GitHub
commit 055c83f4e6
2 changed files with 23 additions and 2 deletions

View File

@ -2,11 +2,31 @@
# All Rights Reserved.
from django.conf import settings
from django.core.urlresolvers import NoReverseMatch
from rest_framework.reverse import reverse as drf_reverse
from rest_framework.reverse import _reverse
from rest_framework.versioning import URLPathVersioning as BaseVersioning
def drf_reverse(viewname, args=None, kwargs=None, request=None, format=None, **extra):
"""
Copy and monkey-patch `rest_framework.reverse.reverse` to prevent adding unwarranted
query string parameters.
"""
scheme = getattr(request, 'versioning_scheme', None)
if scheme is not None:
try:
url = scheme.reverse(viewname, args, kwargs, request, format, **extra)
except NoReverseMatch:
# In case the versioning scheme reversal fails, fallback to the
# default implementation
url = _reverse(viewname, args, kwargs, request, format, **extra)
else:
url = _reverse(viewname, args, kwargs, request, format, **extra)
return url
def get_request_version(request):
"""
The API version of a request as an integer i.e., 1 or 2

View File

@ -285,7 +285,8 @@ REST_FRAMEWORK = {
'VIEW_NAME_FUNCTION': 'awx.api.generics.get_view_name',
'VIEW_DESCRIPTION_FUNCTION': 'awx.api.generics.get_view_description',
'NON_FIELD_ERRORS_KEY': '__all__',
'DEFAULT_VERSION': 'v2'
'DEFAULT_VERSION': 'v2',
#'URL_FORMAT_OVERRIDE': None,
}
AUTHENTICATION_BACKENDS = (