Попытка подключить Django к Payfort с помощью API (интеграция платежного шлюза). когда я запускаю pay.html, это дает мне ошибку значения в моем файле представлений

Ошибка: ValueError: Представление hadid.views.initiate_payment не вернуло объект HttpResponse. Вместо этого он вернул None.

Расположение исключения: C:\Users\Chaims music\AppData\Local\Programs\Python\Python38\lib\site-packages\django\core\handlers\base.py в _get_response, строка 124.

Я добавляю свой Def инициировать_платеж ниже

def initiate_payment(request):
if request.method == "GET":
    return render(request, 'templates/pay.html')
 try:
    username = request.POST['username']
    password = request.POST['password']
    amount = int(request.POST['amount'])
    user = authenticate(request, username=username, password=password)
    if user is None:
        raise ValueError
    auth_login(request=request, user=user)
except:
    return render(request, 'templates/pay.html', context={'error': 'Wrong Account Details or amount'})

transaction = Transaction.objects.create(made_by=user, amount=amount)
transaction.save()

Это как раз инициация_платежа, откуда исходит ошибка. пожалуйста, помогите, я уже пробовал подобную ошибку

если какой-либо другой файл необходим, дайте мне знать.

любая помощь приветствуется.


person Gautamrk    schedule 20.09.2020    source источник


Ответы (1)


Ваше представление должно возвращать ответ, вы возвращаете render(...) в блоке исключений, но ничего не возвращаете в блоке try

person GProst    schedule 20.09.2020
comment
я пытаюсь вернуть что-то ниже оператора try, но когда я это делаю, моя строка (transaction = Transaction.objects.create(made_by=user, amount=amount)) становится недоступной. что я должен делать ? - person Gautamrk; 20.09.2020
comment
Просто поместите код транзакции в блок try, прежде чем вернуться. - person GProst; 20.09.2020