NoReverseMatch在... django问题

时间:2017-09-07 14:20:55

标签: python django

当我尝试删除帖子时Django显示此错误。

        raise NoReverseMatch(msg)
django.urls.exceptions.NoReverseMatch: Reverse for 'delete_post' with arguments
'(<Post: "POST-TITLE-HERE">,)' not found. 1 pattern(s) tried: ['/table/post/delete/$
']

我该如何修理?

我的代码的重要部分如下:

views.py:

def delete_post(request, slug):
    post= get_object_or_404(Post, post=slug)
    post.delete()
    return redirect('post:post_detail')

models.py

class Post(models.Model):
    post= models.CharField(max_length=15)
    description_post = models.CharField(max_length=15)

    def get_absolute_url(self):
        return reverse("post:post_delete", kwargs={"slug": self.post})

    def __str__(self):
        return self.post

HTML模板(删除链接)

<a class="nav-link" href="{% url 'board:delete_post' slug=post %}">

urls.py:

url(r'^table/post/delete/$', views.delete_post, name='delete_post') 

提前致谢!

2 个答案:

答案 0 :(得分:0)

您为LinkedList设置的网址格式缺少一个命名组。

require_once 'C:\Apache\htdocs\myProject\lang.php';

另外,请确保在模板中使用帖子的slug。我假设你的帖子实例有一个delete_post字段。

url(r'^table/post/delete/(?P<slug>[\w-]+)$', views.delete_post, name='delete_post') 

答案 1 :(得分:0)

使位置/关键字参数更清晰更重要。这样你就可以使用它们中的任何一个。仅供参考,monospacedDigitSystemFontOfSize:weight: