Django javascript перенаправление с использованием id
Мы пытаемся перенаправить на нашу страницу checkout.html, для перехода на которую требуется id в аргументах, но мы пытаемся перейти на нее с помощью Javascript.
Выход страницы store.html
{% for item in product %}
<div class="col-md-3">
<div class="card" style="width: 90%; margin: 5px 5px;">
<a href="Product/{{item.id}}"><img src="{{item.image.url}}" class="card-img-top"></a>
<div class="cart-footer text-center">
<button onclick="redirect()">Order</button>
</div>
</div>
</div>
{% endfor %}
<script>
function redirect() {
var url = "{% url 'Checkout' %}";
var id = $(this).item('id');
window.location.href = url + "/" + id;
}
</script>
Мы знаем, что можем просто использовать обычную кнопку, например
<button onclick="window.location.href='Checkout/{{item.id}}'">Order</button>
Вот как это было раньше, но мы пытаемся получить это через Javascript для будущего использования Как получить id конкретного объекта в javascript?
urls.py
path('', views.Store, name= "Store"),
path('Checkout/<id>', views.createlocation, name="Checkout"),
path('Product/<id>', views.product_details, name="Product")
В вашем шаблоне :
.
.
{{ item|json_script:"item_obj" }}
<button onclick="redirect()">Order</button>
.
.
Затем в вашей JS-функции
function redirect() {
var url = "{% url 'Checkout' %}";
const item = JSON.parse(document.getElementById('item_obj').textContent);
window.location.href = url + "/" + item[id];
}
Посмотрите этот пример из doc