В BookingConfirmation () отсутствует 1 обязательный аргумент только для ключевого слова: «сумма» - PullRequest
0 голосов
/ 22 марта 2020

Я довольно новичок в Python и Django, и я пытаюсь создать бронирование общежития, используя полосу. Я пытаюсь передать данные (стоимость комнаты) из подробного вида комнаты в вид заряда, но получаю следующую ошибку.

TypeError at /booking/confirm/
BookingConfirmation() missing 1 required keyword-only argument: 'amount'
Request Method:	POST
Request URL:	http://localhost:8000/booking/confirm/
Django Version:	3.0.2
Exception Type:	TypeError
Exception Value:	
BookingConfirmation() missing 1 required keyword-only argument: 'amount'
Exception Location:	C:\Users\Administrator\Desktop\hostel\env\lib\site-packages\django\core\handlers\base.py in _get_response, line 113
Python Executable:	C:\Users\Administrator\Desktop\hostel\env\Scripts\python.exe
Python Version:	3.7.3

Вот мой подробный вид комнаты

def RoomBookingView(request,pk):
    publishkey = settings.STRIPE_PUBLISHABLE_KEY
    if request.method == 'POST':

        if pk:
             room_id = Room.objects.get(pk = pk)
             amount = room_id.price
             student_id = request.user
             room_id.is_reserved = True,
           
             reservation = Reservation(
             room_id = room_id.id,
             student_id = student_id.id,
             
             
             )
             reservation.save()
             try:
                    room = Room.objects.get(id=pk)
                    room.is_reserved = True
                    amount = room_id.price
                    room.save()
             except BaseException:
                    pass
             
             return redirect(reverse('confirm', args=[amount]))
    context = {
        'STRIPE_PUBLISHABLE_KEY' : publishkey,   
    }
    return render(request,'room-detail.html',context)

И мой просмотр Charge

def BookingConfirmation(request,*args,amount):
     amount = args
     if request.method == 'POST':
         charge = stripe.Charge.create(
            
            currency='usd', 
            amount = amount,
            description='A Django charge',
            source=request.POST['stripeToken']
        )
     return render(request,'booking-confirm.html',{})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...