本文整理汇总了Python中rest_framework.templatetags.rest_framework.replace_query_param函数的典型用法代码示例。如果您正苦于以下问题:Python replace_query_param函数的具体用法?Python replace_query_param怎么用?Python replace_query_param使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了replace_query_param函数的16个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: set_next_prev_urls
def set_next_prev_urls(page,max_page,uri):
if page < max_page:
nexturi = replace_query_param(uri, 'page', page + 1)
else:
nexturi = None
if page > 1:
previous = replace_query_param(uri, 'page', page - 1)
else:
previous = None
return nexturi, previous
开发者ID:cybercommons,项目名称:cybercom-api,代码行数:10,代码来源:mongo_paginator.py
示例2: to_native
def to_native(self, value):
if not value.has_next():
return None
page = value.next_page_number()
request = self.context.get('request')
url = request and request.build_absolute_uri() or ''
return replace_query_param(url, self.page_field, page)
开发者ID:noelpur,项目名称:django-rest-framework,代码行数:7,代码来源:pagination.py
示例3: to_native
def to_native(self, page_range):
response = []
request = self.context.get('request')
url = request and request.build_absolute_uri() or ''
for page in page_range:
response.append(replace_query_param(url, self.page_field, page))
return response
开发者ID:manoelneto,项目名称:django-template,代码行数:7,代码来源:paginators.py
示例4: get_previous_link
def get_previous_link(self):
url = self.request.build_absolute_uri()
page = self.get_page()
if page < 2:
return None
return replace_query_param(
url, self.page_query_param, self.get_page() - 1)
开发者ID:Atala,项目名称:arguman.org,代码行数:7,代码来源:mixins.py
示例5: to_representation
def to_representation(self, value):
if not value.has_previous():
return None
page = value.previous_page_number()
request = self.context.get('request')
url = request and request.build_absolute_uri() or ''
return replace_query_param(url, self.page_field, page)
开发者ID:zhanglc,项目名称:django-rest-framework,代码行数:7,代码来源:pagination.py
示例6: reverse
def reverse(self, viewname, args=None, kwargs=None, request=None, format=None, **extra):
url = super(QueryParameterVersioning, self).reverse(
viewname, args, kwargs, request, format, **extra
)
if request.version is not None:
return replace_query_param(url, self.version_param, request.version)
return url
开发者ID:neogoku,项目名称:nfv_api,代码行数:7,代码来源:versioning.py
示例7: build_page_url
def build_page_url(self, page_identifier):
"""
Builds a URL which can be used to access the given page identifer.
In the general case, the page identifiers do not have to be numbers.
"""
url = self.request.build_absolute_uri()
return replace_query_param(url, self.paging_parameter, page_identifier)
开发者ID:mlalic,项目名称:TumCampusAppBackend,代码行数:8,代码来源:views.py
示例8: paginate_words
def paginate_words(words, request):
"""Generate paginated output from a word query set"""
page_size = _get_page_size(request)
page_num = int(request.query_params.get('page', 1))
paginator = Paginator(words, page_size)
page = paginator.page(page_num)
serializer = WordSerializer()
response = {'count': paginator.count,
'page_count': paginator.num_pages,
'page': page_num,
'results': serializer.serialize_many(page.object_list)}
request_url = request.build_absolute_uri()
if page.has_previous():
response['previous'] = replace_query_param(request_url, 'page', page.previous_page_number())
if page.has_next():
response['next'] = replace_query_param(request_url, 'page', page.next_page_number())
return Response(response)
开发者ID:amdw,项目名称:jianjin,代码行数:18,代码来源:views.py
示例9: paginate_queryset
def paginate_queryset(self, queryset, page_size=None):
page = super().paginate_queryset(queryset=queryset, page_size=page_size)
if page is None:
return page
self.headers["x-pagination-count"] = page.paginator.count
self.headers["x-paginated"] = "true"
self.headers["x-paginated-by"] = page.paginator.per_page
self.headers["x-pagination-current"] = page.number
if page.has_next():
num = page.next_page_number()
url = self.request.build_absolute_uri()
url = replace_query_param(url, "page", num)
self.headers["X-Pagination-Next"] = url
if page.has_previous():
num = page.previous_page_number()
url = self.request.build_absolute_uri()
url = replace_query_param(url, "page", num)
self.headers["X-Pagination-Prev"] = url
return page
开发者ID:6ft,项目名称:taiga-back,代码行数:24,代码来源:pagination.py
示例10: build_link
def build_link(self, index):
if not index:
return None
url = self.request and self.request.build_absolute_uri() or ''
return replace_query_param(url, 'page', index)
开发者ID:jamswu,项目名称:opsmanage,代码行数:5,代码来源:serializers.py
示例11: MongoDataPagination
def MongoDataPagination(DB_MongoClient, database, collection, query=None, page=1, nPerPage=None, uri=''):
db = DB_MongoClient
if query:
query = ast.literal_eval(query)
q = [(k, v) for k, v in query['spec'].items()]
query['spec'] = dict(q)
#print query
count = db[database][collection].find(**query).count()
#print count
if nPerPage == 0:
page=1
offset=0
max_page=1
else:
max_page = math.ceil(float(count) / nPerPage)
# Page min is 1
if page < 1:
page = 1
#Change page to last page with data
if page * nPerPage > count:
page = int(max_page)
#Cover count =0
if page < 1:
page = 1
offset = (page - 1) * nPerPage
data = [row for row in db[database][collection].find(**query).skip(offset).limit(nPerPage)]
#replace_query_param(uri, 'page', page)
else:
count = db[database][collection].find().count()
if nPerPage == 0:
page=1
offset=0
max_page=1
else:
max_page = math.ceil(float(count) / nPerPage)
print max_page
# Page min is 1
if page < 1:
page = 1
#Change page to last page with data
if page * nPerPage > count:
page = int(max_page)
#Cover count =0
if page < 1:
page = 1
offset = (page - 1) * nPerPage
data = [row for row in db[database][collection].find().skip(offset).limit(nPerPage)]
if page < max_page:
next = replace_query_param(uri, 'page', page + 1)
else:
next = None
if page > 1:
previous = replace_query_param(uri, 'page', page - 1)
else:
previous = None
result = {'count': count, 'meta': {'page': page, 'page_size': nPerPage, 'pages': int(max_page)}, 'next': next,
'previous': previous, 'results': data}
try:
od = collections.OrderedDict(sorted(result.items()))
except:
# older python versions < 2.7
od = OrderedDict(sorted(result.items()))
return od
开发者ID:MGMIC,项目名称:restful-api,代码行数:64,代码来源:mongo_paginator.py
示例12: get_next_link
def get_next_link(self):
url = self.request.build_absolute_uri()
return replace_query_param(
url, self.page_query_param, self.get_page() + 1)
开发者ID:Atala,项目名称:arguman.org,代码行数:4,代码来源:mixins.py
示例13: _get_page_link
def _get_page_link(self, value, page):
if not value.paginator.count:
return None
uri = self._get_current_uri()
return self._get_link_object(replace_query_param(uri, self.page_field, page))
开发者ID:Proteus-tech,项目名称:drf_hal,代码行数:5,代码来源:pagination.py
示例14: to_native
def to_native(self, value):
if not value.has_next():
return None
page = value.next_page_number()
return replace_query_param('', self.page_field, page)
开发者ID:doismellburning,项目名称:cla_backend,代码行数:5,代码来源:pagination.py
示例15: paginate
def paginate(self, queryset, request):
# first get paging parameters.
limit_p = settings.REST_FRAMEWORK.get('PAGINATE_BY_PARAM', 'limit')
offset_p = settings.REST_FRAMEWORK.get('PAGINATE_PARAM', 'offset')
max_limit = settings.REST_FRAMEWORK.get('MAX_PAGINATE_BY', 500)
default_limit = settings.REST_FRAMEWORK.get('PAGINATE_BY', 10)
offset = int(request.QUERY_PARAMS.get(offset_p, 0))
limit = int(request.QUERY_PARAMS.get(limit_p, default_limit))
limit = max_limit if limit > max_limit else limit
page = queryset[offset:offset+limit]
# make sure the end row num is not > the total count of the queryset
total_count = queryset.count()
if total_count > 0:
end_row = offset + limit - 1
end_row = total_count - 1 if end_row > total_count - 1 else end_row
else:
end_row = None
offset = None
url = request.build_absolute_uri()
# determine the previous and next offsets for the previous and next
# pages of results
if offset is None or offset == 0:
prev_offset = None
else:
prev_offset = offset - limit if offset - limit >= 0 else 0
if offset is None or end_row == total_count - 1:
next_offset = None
else:
next_offset = offset + limit
prev_page = None
if prev_offset is not None:
prev_page = urllib.unquote(replace_query_param(url, offset_p,
prev_offset))
next_page = None
if next_offset is not None:
next_page = urllib.unquote(replace_query_param(url, offset_p,
next_offset))
resource_name = render.underscoreToCamel(self.resource_name)
resource_list = self.get_serializer(instance=page, force_refresh=True,
context={'request': request,
'view': self}).data
# page_data elements dictate what shows up in the API for page-level
# metadata
page_data = OrderedDict()
page_data['totalCount'] = total_count
if offset is not None:
page_data['startRow'] = offset
if end_row is not None:
page_data['endRow'] = end_row
page_data['_links'] = OrderedDict()
page_data['_links']['self'] = {'href': url}
if prev_page is not None:
page_data['_links']['previous'] = {'href': prev_page}
if next_page is not None:
page_data['_links']['next'] = {'href': next_page}
if resource_list:
page_data['_embedded'] = {resource_name: resource_list}
return page_data
开发者ID:jthomale,项目名称:catalog-api,代码行数:66,代码来源:simpleviews.py
示例16: add_query_param
def add_query_param(url, **query):
for key, val in query.items():
url = replace_query_param(url, key, val)
return url
开发者ID:willkg,项目名称:browsercompat,代码行数:4,代码来源:helpers.py
注:本文中的rest_framework.templatetags.rest_framework.replace_query_param函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论