def checkout(request, **kwargs):
client_token = generate_client_token()
existing_order = get_user_pending_order(request)
publishKey = settings.STRIPE_PUBLISHABLE_KEY
if request.method == 'POST':
token = request.POST.get('stripeToken', False)
if token:
try:
charge = stripe.Charge.create(
amount=100*existing_order.get_cart_total(),
currency='usd',
description='Example charge',
source=token,
)
return redirect(reverse('carts:update_records',
kwargs={
'token': token
})
)
except stripe.CardError as e:
message.info(request, "Your card has been declined.")
else:
result = transact({
'amount': existing_order.get_cart_total(),
'payment_method_nonce': request.POST['payment_method_nonce'],
'options': {
"submit_for_settlement": True
}
})
if result.is_success or result.transaction:
return redirect(reverse('sharing:upload',
kwargs={
'token': token
})
)
else:
for x in result.errors.deep_errors:
messages.info(request, x)
return redirect(reverse('carts:checkout'))
get_total = existing_order.get_cart_total()
get_total.save()
context = {
'order': existing_order,
'client_token': client_token,
'STRIPE_PUBLISHABLE_KEY': publishKey
}
return render(request, 'carts/checkout.html', context)
Я хочу продлить
if result.is_success or result.transaction:
этот метод для загрузки, а также
def upload(request, token):
if result.is_success or result.transaction:
model = CN
form_class = uploadform
form = uploadform(request.POST or None, request.FILES or None)
if form.is_valid():
data = form.save()
upload = form.cleaned_data['upload']
client_need = form.cleaned_data['client_need']
data.save()
return render(request, 'sharing/upload.html', {"form": form})
else:
return redirect(request, 'sharing:index', context)
Но когда я использую метод, я получаю сообщение об ошибке
имя 'результат' не определено
Когда я запрашиваю способ оплаты
result = checkout(request)
if result.is_success or result.transaction:
model = CN
form_class = uploadform
form = uploadform(request.POST or None, request.FILES or None)
if form.is_valid():
Я получаю сообщение об ошибке,
'HttpResponse' object has no attribute 'is_success'