mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-24 23:19:47 +03:00
added support for absolute/relative url switching
This commit is contained in:
parent
497da7fc69
commit
1fb988b533
|
@ -166,4 +166,8 @@ Default: `'format'`
|
||||||
|
|
||||||
Default: `'format'`
|
Default: `'format'`
|
||||||
|
|
||||||
|
## USE_ABSOLUTE_URLS
|
||||||
|
|
||||||
|
Default: `True`
|
||||||
|
|
||||||
[cite]: http://www.python.org/dev/peps/pep-0020/
|
[cite]: http://www.python.org/dev/peps/pep-0020/
|
||||||
|
|
|
@ -4,6 +4,11 @@
|
||||||
>
|
>
|
||||||
> — Eric S. Raymond, [The Cathedral and the Bazaar][cite].
|
> — Eric S. Raymond, [The Cathedral and the Bazaar][cite].
|
||||||
|
|
||||||
|
## Master
|
||||||
|
|
||||||
|
* Added support for absolute/relative url switching
|
||||||
|
* Bugfix: Fix absolute/relative url mix
|
||||||
|
|
||||||
## 2.1.9
|
## 2.1.9
|
||||||
|
|
||||||
**Date**: 11th Dec 2012
|
**Date**: 11th Dec 2012
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
from rest_framework.settings import api_settings
|
||||||
from rest_framework.templatetags.rest_framework import replace_query_param
|
from rest_framework.templatetags.rest_framework import replace_query_param
|
||||||
|
|
||||||
# TODO: Support URLconf kwarg-style paging
|
# TODO: Support URLconf kwarg-style paging
|
||||||
|
@ -15,7 +16,11 @@ class NextPageField(serializers.Field):
|
||||||
return None
|
return None
|
||||||
page = value.next_page_number()
|
page = value.next_page_number()
|
||||||
request = self.context.get('request')
|
request = self.context.get('request')
|
||||||
url = request and request.build_absolute_uri() or ''
|
if api_settings.USE_ABSOLUTE_URLS:
|
||||||
|
assert request, "request is required for building absolute url"
|
||||||
|
url = request.build_absolute_uri()
|
||||||
|
else:
|
||||||
|
url = request and request.get_full_path() or ''
|
||||||
return replace_query_param(url, self.page_field, page)
|
return replace_query_param(url, self.page_field, page)
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,7 +35,11 @@ class PreviousPageField(serializers.Field):
|
||||||
return None
|
return None
|
||||||
page = value.previous_page_number()
|
page = value.previous_page_number()
|
||||||
request = self.context.get('request')
|
request = self.context.get('request')
|
||||||
url = request and request.build_absolute_uri() or ''
|
if api_settings.USE_ABSOLUTE_URLS:
|
||||||
|
assert request, "request is required for building absolute url"
|
||||||
|
url = request.build_absolute_uri()
|
||||||
|
else:
|
||||||
|
url = request and request.get_full_path() or ''
|
||||||
return replace_query_param(url, self.page_field, page)
|
return replace_query_param(url, self.page_field, page)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
"""
|
"""
|
||||||
Provide reverse functions that return fully qualified URLs
|
Provide reverse functions that return fully qualified URLs
|
||||||
"""
|
"""
|
||||||
|
from rest_framework.settings import api_settings
|
||||||
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
|
||||||
|
|
||||||
|
@ -14,8 +15,9 @@ def reverse(viewname, args=None, kwargs=None, request=None, format=None, **extra
|
||||||
kwargs = kwargs or {}
|
kwargs = kwargs or {}
|
||||||
kwargs['format'] = format
|
kwargs['format'] = format
|
||||||
url = django_reverse(viewname, args=args, kwargs=kwargs, **extra)
|
url = django_reverse(viewname, args=args, kwargs=kwargs, **extra)
|
||||||
if request:
|
if api_settings.USE_ABSOLUTE_URLS:
|
||||||
return request.build_absolute_uri(url)
|
assert request, "request is required for building absolute url"
|
||||||
|
url = request.build_absolute_uri(url)
|
||||||
return url
|
return url
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -74,6 +74,8 @@ DEFAULTS = {
|
||||||
'URL_FORMAT_OVERRIDE': 'format',
|
'URL_FORMAT_OVERRIDE': 'format',
|
||||||
|
|
||||||
'FORMAT_SUFFIX_KWARG': 'format',
|
'FORMAT_SUFFIX_KWARG': 'format',
|
||||||
|
|
||||||
|
'USE_ABSOLUTE_URLS': True,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user