我试图为用户确认邮件生成uid。你知道吗
'uid':urlsafe_base64_encode(force_bytes(user.pk)),
所以,它的工作很好,它返回类似“Tm9uZQ”的东西
然后,当我试图解码它时,使用force_text(urlsafe_base64_decode(uidb64))
它不返回任何值。你知道吗
下一串
urlsafe_base64_decode(uidb64)
另外,返回b'None'
我试着用google搜索它,看到了不同的实现,但是复制粘贴代码不起作用。你知道吗
我写的是
b64_string = uidb64
b64_string += "=" * ((4 - len(b64_string) % 4) % 4)
print(b64_string)
print(force_text(base64.urlsafe_b64decode(b64_string)))
结果还是没有:
Tm9uZQ==
None
我不明白默认解码怎么会不起作用。你知道吗
"Tm9uZQ=="
是字符串"None"
的base64
编码你的一些数据可能丢失了。例如。用户.pk未设置。我认为
force_bytes
正在把一个None
user.pk
从Django源变成bytestringb'None'
通过在调用
force_bytes
时设置strings_only=True
,可以防止None
变成b'None'
。你知道吗相关问题 更多 >
编程相关推荐