Django - Удаление с помощью модала: показывать и удалять только первый элемент из таблицы

Пожалуйста, помогите мне понять проблему. Я пытаюсь использовать модал для удаления каждой строки отдельно, но вместо того, чтобы отобразить и удалить мою фактическую строку, он всегда отображает и удаляет первую строку в таблице. Где я ошибаюсь в коде? Ниже мои настройки. Большое спасибо.

models.py

class Post(models.Model):

class DisplayOnlyPublicat(models.Manager):
    def get_queryset(self):
        return super().get_queryset() .filter(status='publicat')

options =(
    ('draft', 'nepublicat'),
    ('publicat', 'publicat')
)

title = models.CharField(max_length=250)
poster = models.ImageField ( upload_to ='posts/', default='posts/poster_articole_pp.jpg')
category = models.ForeignKey(Category, on_delete=models.SET_DEFAULT, default=1)
slug = models.SlugField(max_length=250, unique_for_date='publish')
publish = models.DateTimeField(default=timezone.now) 
author = models.ForeignKey (User, null=True, on_delete=models.SET_NULL, related_name='profipedia_posts')
short_content = models.TextField(null=True)
# content = models.TextField()
# content = RichTextField()
content = RichTextUploadingField(external_plugin_resources=[( 'emojione', '/static/vendor/ckeditor_plugins/emojione/' , 'plugin.js', )],)
status = models.CharField(max_length=10, choices=options, default='draft')
id = models.UUIDField(default=uuid.uuid4, unique=True, primary_key=True, editable=False)
objects = models.Manager() #denumire initiala 
dop = DisplayOnlyPublicat() # denumire custom

def get_absolute_url(self):
    return reverse('posts:articol', args=[self.slug])
    

# sa deschida articolul pe baza de denumire(slug) din sectiunea admin indiferent de statusul articolului (publicat/nepublicat)
# def get_absolute_url_adm(self):
#     return reverse('posts:articolAdm', args=[self.slug])

class Meta:
    ordering = ('-publish',)

def __str__(self):
    return self.title

views.py

def delete_articol(request, articol_id):
    post = Post.objects.get(pk=articol_id)
    post.delete()
    messages.success(request, "Articolul a fost sters!")
    return redirect('posts:articoleAdm')

urls.py

urlpatterns = [
    
    path('', views.articole, name='articole'),
   
    path('articole-admin/', views.articoleAdm, name='articoleAdm'),
    path('<slug:post>/', views.articol, name='articol'),
    path('articole-admin/creare-articol/', views.creareArticol, name='creareArticol'),
    path('articole-admin/<pk>/', views.articolAdm, name='articolAdm'),
    path('modificare-articol/<str:pk>/', views.modificareArticol, name='modificareArticol'),
    path('sterge-articol/<articol_id>/', views.delete_articol, name='stergeArticol'),
    path('filtru/<category>', views.CatListView.as_view(), name='categorieArticol'),
    
]

html шаблон

Все ваши кнопки удаления относятся к одному и тому же модалу. Проблема в том, что все создаваемые вами модалы имеют одинаковый id. При обращении к этому id будет показан первый модал.

Вместо этого следует присвоить каждому модалу отдельный id, содержащий, например, id поста. Затем вызовите этот конкретный модал в вашей кнопке удаления.

Ваша кнопка удаления:

<td><button type="button" class="btn btn-icon btn-icon-only btn-foreground-alternate" data-bs-toggle="modal" data-bs-target="#deletePostPPP-{{post.id}}"><i data-acorn-icon="bin"></i></button></td>

Ваш модал:

<!-- delete modal -->
<div class="modal fade" id="deletePostPPP-{{post.id}}" tabindex="-1" role="dialog" aria-hidden="true">
Вернуться на верх