本文整理汇总了Python中rest_framework.utils.urls.replace_query_param函数的典型用法代码示例。如果您正苦于以下问题:Python replace_query_param函数的具体用法?Python replace_query_param怎么用?Python replace_query_param使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了replace_query_param函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_paginated_data
def get_paginated_data(request, results, page_num, per_page):
"""
Return a dict with the following values:
next: The URL for the next page
previous: The URL for the previous page
results: The results on this page
"""
# Note: Previous versions of this function used Django Rest Framework's
# paginated serializer. With the upgrade to DRF 3.1, paginated serializers
# have been removed. We *could* use DRF's paginator classes, but there are
# some slight differences between how DRF does pagination and how we're doing
# pagination here. (For example, we respond with a next_url param even if
# there is only one result on the current page.) To maintain backwards
# compatability, we simulate the behavior that DRF used to provide.
page = _Page(results, page_num, per_page)
next_url, previous_url = None, None
base_url = request.build_absolute_uri()
if page.has_next():
next_url = replace_query_param(base_url, "page", page.next_page_number())
if page.has_previous():
previous_url = replace_query_param(base_url, "page", page.previous_page_number())
return {
"next": next_url,
"previous": previous_url,
"results": results,
}
示例2: get_paginated_response
def get_paginated_response(self, data):
self_link = self.request.build_absolute_uri()
if self_link.endswith(".api"):
self_link = self_link[:-4]
if self.page.has_next():
next_link = replace_query_param(
self_link, self.page_query_param, self.page.next_page_number())
else:
next_link = None
if self.page.has_previous():
prev_link = replace_query_param(
self_link, self.page_query_param,
self.page.previous_page_number())
else:
prev_link = None
return response.Response(OrderedDict([
('_links', OrderedDict([
('self', dict(href=self_link)),
('next', dict(href=next_link)),
('previous', dict(href=prev_link)),
])),
('count', self.page.paginator.count),
('_embedded', data)
]))
示例3: test_valid_unicode_preserved
def test_valid_unicode_preserved(self):
q = '/?q=%E6%9F%A5%E8%AF%A2'
new_key = 'page'
new_value = 2
value = '%E6%9F%A5%E8%AF%A2'
assert new_key in replace_query_param(q, new_key, new_value)
assert value in replace_query_param(q, new_key, new_value)
示例4: test_valid_unicode_replaced
def test_valid_unicode_replaced(self):
q = '/?page=1'
value = '1'
new_key = 'q'
new_value = '%E6%9F%A5%E8%AF%A2'
assert new_key in replace_query_param(q, new_key, new_value)
assert value in replace_query_param(q, new_key, new_value)
示例5: get_previous_link
def get_previous_link(self):
if self.page == 1:
return None
url = self.request.build_absolute_uri()
url = replace_query_param(url, self.page_size_query_param, self.limit)
url = replace_query_param(url, self.page_query_param, self.page - 1)
return url
示例6: get_next_link
def get_next_link(self, data=[]):
if len(data) < self.limit:
return None
url = self.request.build_absolute_uri()
url = replace_query_param(url, self.limit_query_param, self.limit)
offset = data[-1]['ranking']
return replace_query_param(url, self.offset_query_param, offset)
示例7: get_next_link
def get_next_link(self):
if not self.has_next_page:
return None
url = self.request.build_absolute_uri()
url = replace_query_param(url, self.page_size_query_param, self.limit)
url = replace_query_param(url, self.page_query_param, self.page + 1)
return url
示例8: get_next_link
def get_next_link(self):
if self.offset + self.limit >= self.count:
return None
url = self.request.build_absolute_uri()
url = replace_query_param(url, self.limit_query_param, self.limit)
offset = self.offset + self.limit
return replace_query_param(url, self.offset_query_param, offset)
示例9: get_previous_link
def get_previous_link(self):
if self.offset <= 0:
return None
url = self.request.build_absolute_uri()
url = replace_query_param(url, self.limit_query_param, self.limit)
if self.offset - self.limit <= 0:
return remove_query_param(url, self.offset_query_param)
offset = self.offset - self.limit
return replace_query_param(url, self.offset_query_param, offset)
示例10: get_last_link
def get_last_link(self):
if self.count == 0:
return None
url = self.request.build_absolute_uri()
url = replace_query_param(url, self.limit_query_param, self.limit)
offset = self.count - self.limit
if offset <= 0:
return remove_query_param(url, self.offset_query_param)
return replace_query_param(url, self.offset_query_param, offset)
示例11: test_invalid_unicode
def test_invalid_unicode(self):
# Encoded string: '��<script>alert(313)</script>=1'
q = '/e/?%FF%FE%3C%73%63%72%69%70%74%3E%61%6C%65%72%74%28%33%31%33%29%3C%2F%73%63%72%69%70%74%3E=1'
key = 'from'
value = 'login'
assert key in replace_query_param(q, key, value)
示例12: get_first_link
def get_first_link(self, display_page_query_param=True):
url = self.request.build_absolute_uri()
if display_page_query_param:
page_number = self.page.paginator.validate_number(1)
return replace_query_param(url, self.page_query_param, page_number)
else:
return remove_query_param(url, self.page_query_param)
示例13: add_query_param
def add_query_param(request, key, val):
"""
Add a query parameter to the current request url, and return the new url.
"""
iri = request.get_full_path()
uri = iri_to_uri(iri)
return escape(replace_query_param(uri, key, val))
示例14: get_last_link
def get_last_link(self):
url = self.request.build_absolute_uri()
page_number = self.paginator.num_pages
# only add a 'last' link if it isn't going to be the same as the 'first' link.
if page_number != 1:
return replace_query_param(url, self.page_query_param, page_number)
示例15: adjust_offset
def adjust_offset(self, url, page_offset):
if url is None:
return
(scheme, netloc, path, query, fragment) = urlparse.urlsplit(force_str(url))
query_dict = QueryDict(query)
try:
offset = pagination._positive_int(
query_dict[self.offset_query_param],
)
except (KeyError, ValueError):
pass
else:
if offset > page_offset:
url = replace_query_param(url, self.offset_query_param, max(0, offset - self.overlapping))
elif offset < page_offset:
url = replace_query_param(url, self.offset_query_param, offset + self.overlapping)
return url