Передача значения в модальное окно в Django

Я хочу добавить модальное окно подтверждения удаления после нажатия на кнопку удаления в таблице, генерируемое рядом объектов из представления Django:

...
{% for i in items %}
<tr>
    <td>{{ i.name }}</td>
    <td><a href="#" data-bs-toggle="modal" data-bs-target="#modal-delete-item">Delete</a></td>
</tr>
{% endfor %}
....

В модальном окне у меня что-то вроде этого:

<div class="modal modal-blur fade" id="modal-delete-item" tabindex="-1" role="dialog" aria-hidden="true">
        ....
        <button href="{% url 'remove_quote_item' i.pk %}" type="button" class="btn btn-danger" data-bs-dismiss="modal">Oui, je confirme.</button>
        ....
</div>

Как я могу использовать переменную "i" в модале, поскольку я нахожусь вне цикла, могу ли я использовать что-либо для ссылки на эту переменную в модале? Или, возможно, использовать javascript для выполнения этого действия? Или есть что-то, что я могу сделать с самим jinja?

Спасибо!

Лучшая практика

Используйте Ajax для отправки запроса на сервер с номером id, который вы хотите удалить.

Плохая практика

Это плохая практика, но вы можете решить этот вопрос.

{% for i in items %}
<tr>
    <td>{{ i.name }}</td>
    <td><a href="#" data-bs-toggle="modal" data-bs-target="#modal-delete-item-{{ i.id }}">Delete</a></td>
</tr>
...........
<div class="modal modal-blur fade" id="modal-delete-item-{{ i.id }}" tabindex="-1" role="dialog" aria-hidden="true">
        ....
        <button href="{% url 'remove_quote_item' i.id %}" type="button" class="btn btn-danger" data-bs-dismiss="modal">Oui, je confirme.</button>
        ....
</div>

.........
{% endfor %}
  1. Используйте ajax для отправки запроса на сервер с id в качестве данных.
  2. в функции delete файла view.py вернуть 0, если запись с заданным id удалена из базы данных, или вернуть 1, если запись не удалена или произошла какая-либо другая ошибка.
  3. создайте скрытый элемент div над таблицей, если ответ равен 0, то удалите эту строку из таблицы, используя и покажите этот элемент div, используя javascript.
Вернуться на верх