删除Django的帖子

发布于 2025-01-31 02:53:24 字数 1067 浏览 3 评论 0原文

嗨,我阅读了一些类似的帖子,但找不到同样的问题。 我写了一个代码以删除帖子,当我按DELETE时,它显示404错误,但是当返回家中时,帖子还在那里 视图:

def delete_music_view(request,music_id):
    # view for deleting music
    my_object = add_music.objects.get(id=music_id)
    if request.method == 'POST':
        my_object.delete()
        return redirect('pages:home')   
    context = {'my_object':my_object}

    return render(request,'pages/delete_music.html',context)

URL:

urlpatterns = [
    path('',views.home,name='home'),
    path('add_music/',views.add_music_view,name='add_music'),
    path('musics/<int:music_id>',views.musics_view,name='music_page'),
    path('musics/<int:music_id>/delete',views.delete_music_view,name='delete_music'),
]

模板:

{% extends 'pages/base.html' %}

{% block content %}
<form action="." method='POST'>
    {% csrf_token %}
    <p><input type="submit" name="delete" value="yes"><a href="../../">cancel</a></p>
</form>
{% endblock %}

您可以告诉我怎么了?

hi ive read some of similar posts but couldn't find same problem.
i wrote a code to delete post and when i press delete it shows 404 error but when back to home post is still there
views:

def delete_music_view(request,music_id):
    # view for deleting music
    my_object = add_music.objects.get(id=music_id)
    if request.method == 'POST':
        my_object.delete()
        return redirect('pages:home')   
    context = {'my_object':my_object}

    return render(request,'pages/delete_music.html',context)

url:

urlpatterns = [
    path('',views.home,name='home'),
    path('add_music/',views.add_music_view,name='add_music'),
    path('musics/<int:music_id>',views.musics_view,name='music_page'),
    path('musics/<int:music_id>/delete',views.delete_music_view,name='delete_music'),
]

template:

{% extends 'pages/base.html' %}

{% block content %}
<form action="." method='POST'>
    {% csrf_token %}
    <p><input type="submit" name="delete" value="yes"><a href="../../">cancel</a></p>
</form>
{% endblock %}

can u pls tell me whats wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

国产ˉ祖宗 2025-02-07 02:53:24

由于delete_music_view方法将处理post请求,因此无需使用表单属性action。您有:

<form action="." method='POST'>
    {% csrf_token %}
    <p><input type="submit" name="delete" value="yes"><a href="../../">cancel</a></p>
</form>

从您的表单中删除操作,然后将其删除:

<form method='POST'>  # Removing the action attribute
    {% csrf_token %}
    <p><input type="submit" name="delete" value="yes"><a href="../../">cancel</a></p>
</form>

应该有效。

另外,请注意,&lt; a href =“ ../../”&gt; cancel&lt;/a&gt;如果不设置,则会向您显示另一个404错误可识别的url django要处理。

我希望这个答案有帮助。

Since the delete_music_view method is going to handle the POST request there's no need to use the form attribute action. You have:

<form action="." method='POST'>
    {% csrf_token %}
    <p><input type="submit" name="delete" value="yes"><a href="../../">cancel</a></p>
</form>

Remove the action from your form and have this instead:

<form method='POST'>  # Removing the action attribute
    {% csrf_token %}
    <p><input type="submit" name="delete" value="yes"><a href="../../">cancel</a></p>
</form>

That should work.

Also, note that <a href="../../">cancel</a> will show you another 404 error if you don't set a recognizable url for django to handle.

I hope this answer helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文