【问题标题】:Delete post in django在 django 中删除帖子
【发布时间】:2021-08-18 16:45:58
【问题描述】:

我知道以前有人问过类似的问题,但我没能得到它。这是我作为 Django 初学者的第一个项目。

在我的 Django 博客应用程序中,我创建了一个删除按钮,但它不起作用,我正在寻找答案,在网络上尝试不同的方法但没有帮助。

我正在尝试做的是当管理员打开帖子时,然后单击删除按钮,它会获取帖子 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>

【问题讨论】:

标签: python django


【解决方案1】:

删除帖子

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')

【讨论】:

    猜你喜欢
    • 2019-01-17
    • 1970-01-01
    • 2020-05-19
    • 2021-09-27
    • 2021-07-09
    • 2020-08-22
    • 1970-01-01
    • 1970-01-01
    • 2019-09-28
    相关资源
    最近更新 更多