1
+ import django
1
2
from django .contrib .auth import get_user_model
2
3
from django .core import signing
3
- from django .utils import baseconv
4
+
5
+ if django .VERSION >= (4 , 0 ):
6
+ b62_encode = signing .b62_encode
7
+ b62_decode = signing .b62_decode
8
+ else :
9
+ from django .utils import baseconv
10
+
11
+ b62_encode = baseconv .base62 .encode
12
+ b62_decode = baseconv .base62 .decode
13
+
4
14
5
15
__all__ = (
6
16
"UserDoesNotExist" ,
@@ -32,7 +42,7 @@ def to_timestamp(value):
32
42
"""
33
43
if value is None :
34
44
return ""
35
- return baseconv . base62 . encode (int (value .timestamp ()))
45
+ return b62_encode (int (value .timestamp ()))
36
46
37
47
def sign (self , user ):
38
48
"""
@@ -53,7 +63,7 @@ def sign(self, user):
53
63
54
64
def _make_hash_value (self , user ):
55
65
last_login = self .to_timestamp (user .last_login )
56
- user_pk = baseconv . base62 . encode (user .pk )
66
+ user_pk = b62_encode (user .pk )
57
67
return self .sep .join ((user_pk , last_login ))
58
68
59
69
def unsign (self , value , max_age = None , single_use = True ):
@@ -87,7 +97,7 @@ def unsign(self, value, max_age=None, single_use=True):
87
97
"""
88
98
result = super ().unsign (value , max_age = max_age )
89
99
user_pk , last_login = result .rsplit (self .sep , 2 )
90
- user_pk = baseconv . base62 . decode (user_pk )
100
+ user_pk = b62_decode (user_pk )
91
101
try :
92
102
user = get_user_model ()._default_manager .get (pk = user_pk )
93
103
except get_user_model ().DoesNotExist as e :
0 commit comments