0

I know similar kind of question is asked before, but I was not able to get it. This is my first project as a Django beginner.

In my Django blog app, I made a delete button but it is not working and I am finding for answers, trying different methods on the web but it did not help.

I am trying to do is when admin open the post, then on clicking the delete button, it take the post-id and delete that post and redirect to home page, but it is not working as expected. So, lastly I came here. Any help will be appreciated. Thanks!

This is my urls.py file:

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
    path('post/<int:pk>', views.post, name='post'),
    path('about', views.about, name='about'),
    path('contact_us', views.contact_us, name='contact_us'),
    path('register', views.register, name='register'),
    path('login', views.login, name='login'),
    path('logout', views.logout, name='logout'),
    path('create_post', views.create_post, name='create_post'),
    path('delete_post', views.delete_post, name='delete_post')
]

This is my views.py file:

def delete_post(request, *args, **kwargs):
    pk = kwargs.get('pk')
    post = get_object_or_404(Post, pk=pk)  

    if request.method == 'POST':         
        post.delete()                     
        return redirect('/')

    return render(request, 'delete-post.html')

This is delete post html form:

<form action="{% url 'delete_post' post.id %}" method="post">
    {% csrf_token %}
    <input type="submit" value="Delete post">
</form>

Delete button:

<a href="delete_post"><button type="button" class="btn btn-danger" style="position:relative; right: -1145px;">Delete</button></a>
  • check this it might help https://stackoverflow.com/questions/51781841/delete-a-post-in-django/51782132 – Println Aug 18 '21 at 16:57

1 Answers1

1

for deleting a post

def delete_post(request, id):
    post = Post.objects.filter(id=id)
    address.delete()
    return redirect('/')

and in your html

<a class="btn btn-outline-danger" href="{% url 'appname:delete_post' id=post.id %}">Delete It</a>

and in your urls.py

path('<int:id>/delete-post',views.delete_post,name='delete_post')
Shreyash mishra
  • 738
  • 1
  • 7
  • 30