Я пытаюсь удалить элементы из списка адресов через модал. Проблема в том, что я не могу удалить выбранный адрес из списка. он всегда удаляет первый.
Шаблон:
{% extends 'base.html' %}
{% block content %}
<main class="login-page">
<div class="contact signin address-list" id="book-table">
<div class="titulos">
<p>Domicilios</p>
<button class="btn btn-secondary" type="button">
<a href="{% url "main:address_create" %}"><i class="fas fa-plus"></i></a>
</button>
</div>
{% for address in object_list %}
<div class="crud">
<div>
<p class="details">{{ address.name }}</p>
<p class="details">{{ address.address1 }} ({{ address.zip_code }})</p>
<p class="details">{{ address.phone }}</p>
<p class="details">{{ address.city }}</p>
<p class="details">{{ address.get_country_display}}</p>
</div>
<div>
<button class="btn btn-info" type="button">
<a href="{% url "main:address_update" address.id %}"><i class="fas fa-pen"></i></a>
</button>
<button class="btn btn-danger" type="button">
<a href="{% url "main:address_delete" address.id %}" class="confirm-delete" data-toggle="modal" data-target="#confirmDeleteModal"><i class="fas fa-trash-alt"></i>
</a>
</button>
<div class="modal fade" id="confirmDeleteModal" tabindex="-1" role="dialog"
aria-labelledby="confirmDeleteModal" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body confirm-delete">
¿Está seguro de eliminar la dirección {{ address.address1 }}?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal" data-target="modal">Cancelar</button>
<form method="POST" action="{% url "main:address_delete" address.id %}">
{% csrf_token %}
<button type="submit" class="btn btn-danger">Eliminar</a>
</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
{% if not forloop.last %}<hr style="display: block">{% endif %}
{% endfor %}
</div>
</main>
{% endblock content %}
Кнопка, которая запускает модальный режим, работает нормально (цель id верна):
<button class="btn btn-danger" type="button">
<a href="{% url "main:address_delete" address.id %}" class="confirm-delete"
data-toggle="modal" data-target="#confirmDeleteModal"><i class="fas fa-trash-alt"></i>
</a>
</button>
Но текст и кнопка внутри модального окна всегда нацелены на первый адрес списка ...
¿Está seguro de eliminar la dirección {{ address.address1 }}?
<button type="button" class="btn btn-secondary" data-dismiss="modal" data-target="modal">Cancelar</button>
<form method="POST" action="{% url "main:address_delete" address.id %}">
{% csrf_token %}
<button type="submit" class="btn btn-danger">Eliminar</a></button>
</button>
Полагаю, мне нужно добавить какой-нибудь код JS к каким-то образом отправьте идентификатор с кнопки, которая запускает модальный режим, но я, честно говоря, не знаю, является ли это решением или я делаю что-то не так в текущем коде.
Любая помощь будет оценена! ! Спасибо
Просмотров:
class AddressCreateView(LoginRequiredMixin,CreateView):
model = models.Address
fields = ['name', 'address1', 'phone', 'zip_code', 'city', 'country']
def form_valid(self, form):
obj = form.save(commit=False)
obj.user = self.request.user
obj.save()
return super().form_valid(form)
class AddressUpdateView(LoginRequiredMixin,UpdateView):
model = models.Address
fields = ['name', 'address1', 'phone', 'zip_code', 'city', 'country']
success_url = reverse_lazy('main:address_list')
def get_queryset(self):
return self.model.objects.filter(user=self.request.user)
class AddressDeleteView(LoginRequiredMixin,DeleteView):
model = models.Address
success_url = reverse_lazy('main:address_list')
def get_queryset(self):
return self.model.objects.filter(user=self.request.user)
URL-адреса:
path('address/', views.AddressListView.as_view(), name='address_list'),
path('address/create/', views.AddressCreateView.as_view(), name='address_create'),
path('address/<int:pk>/', views.AddressUpdateView.as_view(), name='address_update'),
path('address/<int:pk>/delete/', views.AddressDeleteView.as_view(), name='address_delete'),