AttributeError: у объекта 'tuple' нет атрибута 'stripe_customer_id' - PullRequest
0 голосов
/ 09 октября 2019

Я получаю сообщение об ошибке ниже при попытке отправить покупку с помощью Stripe Api в приложении django.

строка 115, в сообщении, если userprofile.stripe_customer_id! = '' И userprofile.stripe_customer_id нетНет: AttributeError: объект 'tuple' не имеет атрибута 'stripe_customer_id' [09 / Oct / 2019 19:18:26] "POST / api / checkout / HTTP / 1.1" 500 16291

Все былоработая, пока я не сделал изменения, основанные на 22: 33 .

Это строка 115:

 if userprofile.stripe_customer_id != '' and userprofile.stripe_customer_id is not None:
            customer = stripe.Customer.retrieve(
                userprofile.stripe_customer_id)
            customer.sources.create(source=token)

1 Ответ

1 голос
/ 09 октября 2019

Вы отправили далеко слишком много кода здесь.

Проблема здесь:

userprofile = UserProfile.objects.get_or_create(user=self.request.user)

get_or_create возвращает aкортеж: (object, created). Вы присвоили весь кортеж переменной userprofile.

Поскольку вас не волнует created, присвойте его одноразовому имени:

userprofile, _ = UserProfile.objects.get_or_create(user=self.request.user)
...