Я довольно новичок в Django и HTML и хочу создать портал для клиентов, где клиенты смогут управлять своими документами.Моя проблема в том, что у каждой строки есть своя собственная кнопка удаления, но какую бы кнопку я ни нажал, она всегда удаляет верхнюю строку, а не кнопку в строке, которую я нажала.Я думаю, что вам нужно только увидеть шаблон, чтобы увидеть ошибку, потому что он удаляет «Акте», но не тот, который нужен.
Шаблон:
<table class="center" id="myTable" style="border:solid;border-color:white;padding-bottom:1%;padding-left:1%;margin-top:3%;border-radius:6px;width:50%">
<tr style="margin-left:30%;margin-right:30%;border:solid;border-color:white;padding-bottom:1%;padding-left:1%;margin-top:3%;border-radius:6px;color:white">
<th class="cell" onclick="sortTable(0)">Aktenbarcode</th>
<th class="cell" onclick="sortTable(1)">Ersteller</th>
<th class="cell" onclick="sortTable(2)">Startdatum</th>
<th class="cell" onclick="sortTable(3)">Kundennummer</th>
<th class="cell" onclick="sortTable(4)">Aktionen</th>
</tr>
{%for Akte in akte_list%}
<tr>
<td id="{{Akte.Aktenbarcode}}"class="cell">{{Akte.Aktenbarcode}}</td>
<td class="cell">{{Akte.user}}</td>
<td class="cell">{{Akte.Startdatum}}</td>
<td class="cell">{{Akte.kundennr}}</td>
<td class="cell">
<form action="{% url 'aktedelete' %}" method="post">
{% csrf_token %}
<input class="btn btn-primary" type="submit" value="Status anzeigen"/>
<input type="hidden" name="aktenbarcode" value="{{Akte.Aktenbarcode}}" />
<input type="hidden" name="mitglied" value="{{container}}"/>
<input type="hidden" name="benutzer" value="{{request.user.username}}"/>
<input type="hidden" name="status" value="{{status}}" />
{% if status == "O" %}
<button class="btn btn-primary" data-toggle="modal" data-target="#myModal" type="button"> Akte entfernen</button>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLongTitle" style="color:black">Akte: {{Akte.Aktenbarcode}}</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body" style="color:black">
Wollen Sie diese Akte unwiderruflich aus dem Container löschen?
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary" value="Save" onclick="form_submit()">Ja, ich bin mir sicher</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal" value="Cancel">Nein</button>
</div>
</div>
</div>
</div>
<!-- ModalEnd-->
</form></td>
{% endif %}
</tr>
{% endfor %}
</table>
В моем модальном классе:
Akte: {{Akte.Aktenbarcode}}
Эта переменная также всегда отображает 'Akte' из первой строки, а не из строки вкоторый я нажал на кнопку.Я надеюсь, что вы можете дать мне объяснение и, возможно, решение, почему это происходит.
Это в views.py:
def aktedelete(request):
if request.method == 'POST':
form = AkteDelForm()
z = AkteForm
container = request.POST['mitglied']
closecontainerform = CloseContainerForm
status = request.POST['status']
aktenbarcode = request.POST.get('aktenbarcode')
akte = Akte.objects.get(Aktenbarcode=aktenbarcode)
akte.delete()
akte_list = Akte.objects.filter(containerId__Containernr=container)
Anzahl_Akten =Akte.objects.filter(containerId__Containernr=container).count
return render(
request,
'app/aktentabelle.html',
{
'form':form,
'title':'About',
'akte_list':akte_list,
'anzahl':Anzahl_Akten,
'container':container,
'aktenform':z,
'status':status,
'closecontainerform': closecontainerform,
'date':datetime.now().date,
}
)