1+ import django
12from django .contrib .auth import get_user_model
23from 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+
414
515__all__ = (
616 "UserDoesNotExist" ,
@@ -32,7 +42,7 @@ def to_timestamp(value):
3242 """
3343 if value is None :
3444 return ""
35- return baseconv . base62 . encode (int (value .timestamp ()))
45+ return b62_encode (int (value .timestamp ()))
3646
3747 def sign (self , user ):
3848 """
@@ -53,7 +63,7 @@ def sign(self, user):
5363
5464 def _make_hash_value (self , user ):
5565 last_login = self .to_timestamp (user .last_login )
56- user_pk = baseconv . base62 . encode (user .pk )
66+ user_pk = b62_encode (user .pk )
5767 return self .sep .join ((user_pk , last_login ))
5868
5969 def unsign (self , value , max_age = None , single_use = True ):
@@ -87,7 +97,7 @@ def unsign(self, value, max_age=None, single_use=True):
8797 """
8898 result = super ().unsign (value , max_age = max_age )
8999 user_pk , last_login = result .rsplit (self .sep , 2 )
90- user_pk = baseconv . base62 . decode (user_pk )
100+ user_pk = b62_decode (user_pk )
91101 try :
92102 user = get_user_model ()._default_manager .get (pk = user_pk )
93103 except get_user_model ().DoesNotExist as e :
0 commit comments