Я подаю заявку с новой users
моделью и email
в качестве логина.У меня есть простое подтверждение с электронной почтой пользователей.
План:
- Пользователь вводит свои данные;
email
конечно. - Далее Он получает некоторый код (сформированный как
urlsafe_base64_encode(force_bytes(users_email))
). - Этот код планируется вводить вручную или с помощью copy-paste в поле подтверждения.чтобы активировать учетную запись пользователя.
В консоли Python эта цепочка работает хорошо.
Проблема в том, что когда пользователь вводит вручную или копирует и вставляет код из электронной почты, он вызывает
DjangoUnicodeDecodeError: 'utf-8' codec can't decode byte...
You passed in b'm\xb5\xa5\xad\xb...
Некоторый анализ показывает, что в пост-функции код поступает в виде строки "b'bla-bla-bla"
.Но не как строка байтов b'bla-bla-bla'
, которая хороша для получения исходной строки с force_text(urlsafe_base64_decode(the_code))
.
Есть идеи преобразовать строковый объект с b
начальным символом в более удобный объект байтовой строки?Или есть другой способ сделать секретное кодирование / декодирование на основе имени пользователя (user-email)?