Передача переменной в id (HTML)
Я вывожу на страницу комментарии с помощью цикла:
{% for comment in page_obj %}
<div class="media mb-4">
<div class="media-body">
<h5 class="mt-0">
<a href="{% url 'posts:profile' comment.author.username %}">
{{ comment.author.username }}
</a>
{% if comment.author.username == request.user.username %}
 
<a class="btn btn-primary" href="{% url 'posts:edit_comment' comment.id %}">
Редактировать комментарий
</a>
 
{% include 'includes/button_delete_comment.html' %}
{% endif %}
</h5>
<p>
{{ comment.text }}
</p>
</div>
</div>
{% endfor %}
Раньше подтверждение на удаление комментария я сделал через отдельную страницу.
Но сейчас хочу переделать с помощью модального окна и тега dialog.
{% include 'includes/button_delete_comment.html' %}:
<button type="button" onclick="window.comment_delete.showModal();" class="btn btn-primary">
Удалить комментарий.
</button>
<dialog id="comment_delete">
<h1>Вы действительно хотите удалить комментарий?</h1>
<form action="{% url 'posts:comment_delete' comment.id %}">
{% csrf_token %}
<button type="submit" class="btn btn-primary">
Да, удалить комментарий!
</button>
</form>
 
<form method="dialog">
<button type="submit" class="btn btn-primary">Отмена</button>
</form>
</dialog>
Однако столкнулся что в comment.id в id="comment_delete" сохраняется последний из списка и соответственно удаляется не выбранный комментарий а последний из списка. Буду признателен за совет.
Ответы (1 шт):
Автор решения: rpe4ka722
→ Ссылка
Я реализовал так:
{% for i in objects %}
<div id="do_delete_{{ i.id }}" class="change_form_ozp">
<form method="post" action="{% url 'ams:do_delete' i.id %}">
{% csrf_token %}
Вы действительно хотите удалить запись???
<br><br>
<input type="submit" value="Удалить">
<button onmousedown="showhide_changeform('do_delete_{{ i.id }}')" class="close_button">
<i class="fa-solid fa-xmark"></i>
</button>
</form>
</div>
{% endfor %}
Таким образом в шаблоне есть невидимая форма удаления для каждого элемента в БД. При этом кнопку удаления (которая делает форму видимой) можно располагать где хочешь таким же циклом (в моем случае таблица с выводом атрибутов сущностей):
{% for i in objects %}
<tr class="table_row">
<td>{{ i.year }}</td>
<td align="center">
<a href="{{ i.result.url }}" target="_blank">
<i class="fa-solid fa-file-lines"></i>
</a>
</td>
<td align="center">
<button onmousedown="showhide_changeform('do_delete_{{ i.id }}')" class="close_button">
<i class="fa-solid fa-trash"></i>
</button>
</td>
</tr>
{% endfor %}