aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework')
-rw-r--r--rest_framework/pagination.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py
index 0c5abccb..cf1f1afa 100644
--- a/rest_framework/pagination.py
+++ b/rest_framework/pagination.py
@@ -389,7 +389,8 @@ Cursor = namedtuple('Cursor', ['offset', 'reverse', 'position'])
def decode_cursor(encoded):
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])
reverse = bool(int(tokens['reverse'][0]))
position = tokens['position'][0]
@@ -405,7 +406,8 @@ def encode_cursor(cursor):
'reverse': '1' if cursor.reverse else '0',
'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):