首页 > 解决方案 > deleteview 上的 django.urls.exceptions.NoReverseMatch

问题描述

我正在使用通用 DeleteView 删除帖子。单击删除链接时,它会返回

django.urls.exceptions.NoReverseMatch : 为 'postdelete' 反向,未找到任何参数。尝试了 1 种模式: ['posts/(?P<id>[0-9]+)/delete/$']

我尝试在 /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 %}

标签: pythondjango

解决方案


您没有传递id到网址。

尝试这样的事情

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

推荐阅读