Django.url.exceptions异常.NoReverseMatch在deletevi上

2024-04-18 20:44:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用通用的DeleteView删除一篇文章。单击“删除”链接时,它将返回

django.urls.exceptions.NoReverseMatch: Reverse for 'postdelete' with no arguments not found. 1 pattern(s) tried: ['posts/(?P<id>[0-9]+)/delete/$']

我试着将

#urls.py
path('posts/<int:id>/delete/',blogpostDelete.as_view(),name='postdelete'),

#DeleteView
class blogpostDelete(DeleteView):
    success_url='/posts/'   
    template_name="blog/delete.html"
    def get(self,request,id) :
        Blogpost = get_object_or_404(blogpost,id=id)
        return self.render_to_response({'id':id})

#link in template
<a href={% url "postdelete" id=id %}>Delete</a>

#delete.html
{% block content %}

<form action={% url "postdelete" %} method="post">
        {% csrf_token %}
        <p>Are you sure you want to delete "{{ id }}"?</p>
    <input type="submit" value="Confirm">
</form>

{% endblock %}

Tags: tonameselfformidurlgethtml
2条回答

在Delete视图中,不需要在html表单操作中传递id 这样做:

 <form method="post">
            {% csrf_token %}
            <p>Are you sure you want to delete "{{ id }}"?</p>
        <input type="submit" value="Confirm">
    </form>

您没有将id传递到url。你知道吗

试试这个

<form action={% url "postdelete" id="{{id}}" %} method="post">

相关问题 更多 >