Django:为 'delete' 反转,未找到参数“(49,)”和关键字参数“{}”。尝试了 1 种模式:['tidbit/delete_tidbit/']

Django: Reverse for 'delete' with arguments '(49,)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['tidbit/delete_tidbit/']

不知道如何解决这个错误

这是 urls.py 片段:

urlpatterns = [
    ...
    url(r'^delete_tidbit/', views.delete_tidbit, name='delete'),
    ...
]

观点:

def delete_tidbit(request, pk):
    tidbit = Tidbit.objects.get(pk=pk)
    tidbit.delete()
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))

以及引发此错误的模板部分:

<a href="{% url 'delete' tidbit.pk %}">

问题在这里:

url(r'^delete_tidbit/', views.delete_tidbit, name='delete'),

这个 URL 不接受一个参数,而你正试图给它一个参数。

试试这个:

url(r'^delete_tidbit/(?P<pk>.*)', views.delete_tidbit, name='delete'),

但请注意:您正在接受 GET 请求以删除数据库中的项目,任何遇到这些链接的爬虫都可能会尝试跟踪它们并无意中删除您的数据。考虑使用 GET 传递要发布的表单,以确保实际用户正在执行操作。