Использование кода из views.py в javascript из html в django - PullRequest
0 голосов
/ 06 августа 2020

Я работаю над интеграцией платежей для моего django веб-сайта, и в моем views.py у меня есть функция, которая проверяет, была ли транзакция успешной или нет, и я хочу использовать это условие в моем javascript, чтобы я мог сохранить данные (доставка), которые пользователь ввел в форму, если его транзакция была успешно завершена. Это мой views.py для проверки наличия трансмиссии. успешно или нет:

@csrf_exempt
def handlerequest(request):
    # paytm will send you post request here
    form = request.POST
    response_dict = {}
    for i in form.keys():
        response_dict[i] = form[i]
        if i == 'CHECKSUMHASH':
            checksum = form[i]

    verify = Checksum.verify_checksum(response_dict, MERCHANT_KEY, checksum)
    if verify:
        if response_dict['RESPCODE'] == '01':
            print('order successful')
        else:
            print('order was not successful because' + response_dict['RESPMSG'])
    return render(request, 'paymentstatus.html', {'response': response_dict})

, а это мой javascript, который автоматически отправляет данные, введенные пользователем, когда он нажимает кнопку оплаты:

document.getElementById('payment-info').addEventListener('click', function (e) {
      submitFormData()
    })

    function submitFormData() {
      console.log('Payment Button Clicked')
      var userFormData = {
        'name': null,
      }

      var shippingInfo = {
        'address': null,
      }

      shippingInfo.address = form.address.value
      userFormData.name=form.name.value

      var url = "/process_order/"
      fetch(url, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'X-CSRFToken': csrftoken,
        },
        body:JSON.stringify({'form': userFormData, 'shipping': shippingInfo }),
      })
        .then((response) => response.json())
        .then((data) =>  {
          console.log('Success:', data);
          alert('Transaction Completed')
          window.location.href = "{% url 'index' %}"
        })

    }

Я хочу понять способ, чтобы я мог вызвать это submitFormData только тогда, когда верно следующее:

if response_dict['RESPCODE'] == '01':
            print('order successful')

(в моем views.py)

1 Ответ

0 голосов
/ 06 августа 2020

Ваш paymentstatus.html содержит этот JS код. верный? Если это так, то вы уже передаете response_dict для рендеринга в HTML. вы должны иметь возможность обусловить вызов кода JS в соответствии со значением RESPCODE. Это должно быть что-то вроде -

{% for obj in response %}
    {% if obj.RESPCODE == '01'}
        // call to your JS code
    {% else %}
        // something else
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...