Кто-нибудь знает, как решить следующую ошибку ------ization_key = hashlib.sha1 (short_hash + base) .encoding.hexdigest () TypeError: Unicode-объекты должны быть закодированы перед хэшированием ----- all код относительно проблемы прилагается ниже. Вся помощь приветствуется!
import stripe
import random
import hashlib
from django.conf import settings
from django.contrib.auth.signals import user_logged_in
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from django.dispatch import receiver
from .models import Profile, UserStripe, EmailConfirmed
stripe.api_key = settings.STRIPE_SECRET_KEY
def get_create_stripe(user):
new_user_stripe, created = UserStripe.objects.get_or_create(user=user)
if created:
customer = stripe.Customer.create(
email = str(user.email)
)
new_user_stripe.stripe_id = customer.id
new_user_stripe.save()
@receiver(post_save, sender=User)
def create_profile(sender, instance, created, *args, **kwargs):
user=instance
if created:
get_create_stripe(user)
email_confirmed, email_is_created = EmailConfirmed.objects.get_or_create(user=user)
if email_is_created:
**short_hash = hashlib.sha1(str(random.random()).encode('utf-8')).hexdigest()[:5]**
base, domain = str(user.email).split("@")
**activation_key = hashlib.sha1(short_hash+base).encode('utf-8').hexdigest()**
email_confirmed.activation_key = activation_key
email_confirmed.save()
emailconfirmed.activate_user_email()