小编Vip*_*han的帖子

Django 2,python 3.4无法解码urlsafe_base64_decode(uidb64)

我试图通过电子邮件,电子邮件工作,编码工作激活用户,我使用django1.11的方法,该方法成功运行.

在Django 1.11中,以下解码成功到28,其中uidb64 = b'Mjg'

force_text(urlsafe_base64_decode(uidb64))
Run Code Online (Sandbox Code Playgroud)

在django 2(2,0,0,'final',0)中,上述代码解码不起作用并导致错误

django.utils.encoding.DjangoUnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 1: invalid continuation byte. You passed in b'l\xc8\xe0' (<class 'bytes'>)
Run Code Online (Sandbox Code Playgroud)

我也发布了我的观点以防万一

from django.utils.encoding import force_bytes, force_text
from django.utils.http import urlsafe_base64_encode, urlsafe_base64_decode    
def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.is_active = False
            user.save()
            # auth_login(request, user)
            message = render_to_string('user_activate_email.html', {
                'user': user,
                'domain': Site.objects.get_current().domain,
                'uidb64': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': account_activation_token.make_token(user),
            })
            mail_subject = 'Activate your blog account.'
            to_email = …
Run Code Online (Sandbox Code Playgroud)

python django django-views python-3.4 django-2.0

13
推荐指数
1
解决办法
3728
查看次数

标签 统计

django ×1

django-2.0 ×1

django-views ×1

python ×1

python-3.4 ×1