mirror of
https://github.com/encode/django-rest-framework.git
synced 2024-12-01 22:14:06 +03:00
Python 3 fixes for cursor pagination
This commit is contained in:
parent
ca372ef6ef
commit
38a2ed6f62
|
@ -389,7 +389,8 @@ Cursor = namedtuple('Cursor', ['offset', 'reverse', 'position'])
|
||||||
|
|
||||||
def decode_cursor(encoded):
|
def decode_cursor(encoded):
|
||||||
try:
|
try:
|
||||||
tokens = urlparse.parse_qs(b64decode(encoded).decode('ascii'), keep_blank_values=True)
|
querystring = b64decode(encoded.encode('ascii')).decode('ascii')
|
||||||
|
tokens = urlparse.parse_qs(querystring, keep_blank_values=True)
|
||||||
offset = int(tokens['offset'][0])
|
offset = int(tokens['offset'][0])
|
||||||
reverse = bool(int(tokens['reverse'][0]))
|
reverse = bool(int(tokens['reverse'][0]))
|
||||||
position = tokens['position'][0]
|
position = tokens['position'][0]
|
||||||
|
@ -405,7 +406,8 @@ def encode_cursor(cursor):
|
||||||
'reverse': '1' if cursor.reverse else '0',
|
'reverse': '1' if cursor.reverse else '0',
|
||||||
'position': cursor.position
|
'position': cursor.position
|
||||||
}
|
}
|
||||||
return b64encode(urlparse.urlencode(tokens, doseq=True).encode('ascii'))
|
querystring = urlparse.urlencode(tokens, doseq=True)
|
||||||
|
return b64encode(querystring.encode('ascii')).decode('ascii')
|
||||||
|
|
||||||
|
|
||||||
class CursorPagination(BasePagination):
|
class CursorPagination(BasePagination):
|
||||||
|
|
Loading…
Reference in New Issue
Block a user