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>
1

1 Answer 1

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')
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.