Удалить сообщение в django
Я знаю, что подобный вопрос уже задавался, но я не смог его получить. Это мой первый проект как начинающего Django.
В моем приложении Django blog я сделал кнопку удаления, но она не работает, и я ищу ответы, пробую различные методы в интернете, но это не помогло.
Я пытаюсь сделать так: когда администратор открывает пост, то при нажатии на кнопку удалить, он берет post-id и удаляет этот пост и перенаправляет на главную страницу, но это не работает так, как ожидалось. Поэтому, наконец, я пришел сюда. Любая помощь будет оценена по достоинству. Спасибо!
Это мой файл urls.py:
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')
]
Вот мой файл views.py:
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')
Это html-форма для удаления сообщения:
<form action="{% url 'delete_post' post.id %}" method="post">
{% csrf_token %}
<input type="submit" value="Delete post">
</form>
Кнопка удаления:
<a href="delete_post"><button type="button" class="btn btn-danger" style="position:relative; right: -1145px;">Delete</button></a>
за удаление сообщения
def delete_post(request, id):
post = Post.objects.filter(id=id)
address.delete()
return redirect('/')
и в вашем html
<a class="btn btn-outline-danger" href="{% url 'appname:delete_post' id=post.id %}">Delete It</a>
и в вашем urls.py
path('<int:id>/delete-post',views.delete_post,name='delete_post')