mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-07-23 22:49:50 +03:00
Merge 80163ed01e
into 44e9749e36
This commit is contained in:
commit
ec300b8d75
|
@ -150,4 +150,8 @@ Default: `'accept'`
|
|||
|
||||
Default: `'format'`
|
||||
|
||||
## USE_ABSOLUTE_URLS
|
||||
|
||||
Default: `'True'`
|
||||
|
||||
[cite]: http://www.python.org/dev/peps/pep-0020/
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
## Master
|
||||
|
||||
* Support for `read_only_fields` on `ModelSerializer` classes.
|
||||
* Add support and settings option `USE_ABSOLUTE_URLS`
|
||||
|
||||
## 2.1.2
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from rest_framework import serializers
|
||||
from rest_framework.settings import api_settings
|
||||
from rest_framework.templatetags.rest_framework import replace_query_param
|
||||
|
||||
# TODO: Support URLconf kwarg-style paging
|
||||
|
@ -15,7 +16,13 @@ class NextPageField(serializers.Field):
|
|||
return None
|
||||
page = value.next_page_number()
|
||||
request = self.context.get('request')
|
||||
url = request and request.build_absolute_uri() or ''
|
||||
url = ''
|
||||
if request:
|
||||
if api_settings.USE_ABSOLUTE_URLS:
|
||||
url = request.build_absolute_uri()
|
||||
else:
|
||||
url = request.get_full_path()
|
||||
|
||||
return replace_query_param(url, self.page_field, page)
|
||||
|
||||
|
||||
|
@ -30,7 +37,13 @@ class PreviousPageField(serializers.Field):
|
|||
return None
|
||||
page = value.previous_page_number()
|
||||
request = self.context.get('request')
|
||||
url = request and request.build_absolute_uri() or ''
|
||||
url = ''
|
||||
if request:
|
||||
if api_settings.USE_ABSOLUTE_URLS:
|
||||
url = request.build_absolute_uri()
|
||||
else:
|
||||
url = request.get_full_path()
|
||||
|
||||
return replace_query_param(url, self.page_field, page)
|
||||
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
"""
|
||||
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.utils.functional import lazy
|
||||
|
||||
|
@ -14,7 +15,8 @@ def reverse(viewname, args=None, kwargs=None, request=None, format=None, **extra
|
|||
kwargs = kwargs or {}
|
||||
kwargs['format'] = format
|
||||
url = django_reverse(viewname, args=args, kwargs=kwargs, **extra)
|
||||
if request:
|
||||
if api_settings.USE_ABSOLUTE_URLS:
|
||||
assert request, "request is required for building absolute url"
|
||||
return request.build_absolute_uri(url)
|
||||
return url
|
||||
|
||||
|
|
|
@ -66,7 +66,9 @@ DEFAULTS = {
|
|||
'URL_ACCEPT_OVERRIDE': 'accept',
|
||||
'URL_FORMAT_OVERRIDE': 'format',
|
||||
|
||||
'FORMAT_SUFFIX_KWARG': 'format'
|
||||
'FORMAT_SUFFIX_KWARG': 'format',
|
||||
|
||||
'USE_ABSOLUTE_URLS': True
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user