Итак, у меня есть JS dict, и я хочу отправить его в мой Django View, потому что мне нужно использовать его для вызова функции с использованием библиотеки python.
Мне нужно отправить: dir_charge
в моем Django View, но это внутри JS-функции с именем culqi()
, которая отвечает за создание поля source_id
в dict, и поля email
:
js:
Эта функция culqi()
захватывает данные из формы в конце вопроса.
<script>
function culqi() {
if (Culqi.token) { // ¡Objeto Token creado exitosamente!
var dir_charge = {
amount: 24,
currency_code: "PEN",
email: Culqi.token.email,
source_id: Culqi.token.id
};
} else { // ¡Hubo algún problema!
// Mostramos JSON de objeto error en consola
console.log(Culqi.error);
alert(Culqi.error.user_message);
}
};
</script>
JS генерируется, когда пользователь нажимает на эту кнопку:
html:
<button id="buyButton">Pagar</button>
Благодаря этому другому JS:
<script>
$('#buyButton').on('click', function (e) {
// Abre el formulario con la configuración en Culqi.settings
Culqi.open();
e.preventDefault();
});
</script>
Когда пользователь нажимает кнопку, появляется эта форма (она не жестко закодирована в HTMl, но вызывается из внешней библиотеки JS):
<form class="form">
<div class="form-row">
<div class="col col-12">
<div class="form-group">
<div class="input">
<input name="cardNumber" autocomplete="cc-number" type="tel" maxlength="19" class="input-card"
data-mask="#### #### #### ####" data-previous-value="">
</div>
<label for="cardNumber" class="">Número de Tarjeta</label>
<div class="brand"></div>
</div>
</div>
</div>
<div class="form-row">
<div class="col col-6">
<div class="form-group">
<div class="input">
<input name="cardExp" autocomplete="cc-exp" type="tel" maxlength="5" class="input-card"
data-mask="##/##" data-previous-value="">
</div>
<label for="cardExp" class="">Mes / Año</label>
</div>
</div>
<div class="col col-6">
<div class="form-group">
<div class="input">
<input name="cardCVV" autocomplete="cc-csc" type="tel" maxlength="3" class="input-card"
data-mask="###" data-previous-value="">
</div>
<label for="cardCVV" class="">CVV</label>
<a>(?)</a>
</div>
</div>
</div>
<div class="form-row" style="display: none;">
<div class="col col-12">
<div class="form-group">
<div class="input">
<select name="custom-cuotas" id="" class="">
<option value="" selected="selected" disabled="disabled" hidden="hidden">Pagar en Cuotas
</option>
<option value="1">Sin Cuotas</option>
<option value="2">2 Cuotas</option>
<option value="4">4 Cuotas</option>
<option value="6">6 Cuotas</option>
<option value="8">8 Cuotas</option>
<option value="10">10 Cuotas</option>
<option value="12">12 Cuotas</option>
<option value="3">3 Cuotas</option>
<option value="5">5 Cuotas</option>
<option value="7">7 Cuotas</option>
<option value="9">9 Cuotas</option>
<option value="24">24 Cuotas</option>
<option value="48">48 Cuotas</option>
</select>
</div>
</div>
</div>
</div>
<div class="form-row">
<div class="col col-12">
<div class="form-group">
<div class="input">
<input name="cardEmail" autocomplete="email" type="email" class="input input-card">
</div>
<label for="cardEmail" class="">Correo Electrónico</label>
</div>
</div>
</div>
<div class="form-pay">
<button type="submit" class="btnAction">
<span>Pagar </span>
<span class="payText PEN">.24</span>
<small>PEN</small>
</button>
</div>
</form>
ОБНОВЛЕНИЕ 1:
urls.py:
из пути импорта django.urlsот .импорт просмотров
app_name = 'cart'
urlpatterns = [
path('', views.cart_detail, name = 'cart_detail'),
path('full_remove/<int:cart_item_id>/', views.full_remove, name = 'full_remove'),
]
views.py
def cart_detail(request):
print(amount)
print(currency_code)
print(email)
print(source_id)
pass