删除Django的帖子
嗨,我阅读了一些类似的帖子,但找不到同样的问题。 我写了一个代码以删除帖子,当我按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 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于
delete_music_view
方法将处理post
请求,因此无需使用表单属性action
。您有:从您的表单中删除
操作
,然后将其删除:应该有效。
另外,请注意,
&lt; a href =“ ../../”&gt; cancel&lt;/a&gt;
如果不设置,则会向您显示另一个404错误
可识别的url
django
要处理。我希望这个答案有帮助。
Since the
delete_music_view
method is going to handle thePOST
request there's no need to use the form attributeaction
. You have:Remove the
action
from your form and have this instead:That should work.
Also, note that
<a href="../../">cancel</a>
will show you another404 error
if you don't set a recognizableurl
fordjango
to handle.I hope this answer helps.