【发布时间】:2020-07-20 16:30:57
【问题描述】:
我正在使用<str:pk> 删除表中的特定数据。但这不起作用。我按照教程无济于事,这是我得到的:
NoReverseMatch at /
未找到带有参数“('',)' 的“delete_order”的反向操作。尝试了 1 种模式:['delete_order/(?P[^/]+)/$']
views.py
def deleteOrder(request, pk):
order = anime.objects.get(id=pk)
if request.method == "POST":
order.delete()
return redirect('/')
context={'list':order}
return render(request, 'main/delete.html',context)
table.html
<td><a href="" class="btn btn-success">Update</a></td>
<td><a href="{% url 'delete_order' order.id %}" class="btn btn-danger">Delete</a></td>
</tr>
</tbody>
{% endfor %}
urls.py
urlpatterns = [
path('',views.homepage,name ="homepage"),
path('anime/',views.addAnime,name="anime"),
path('delete_order/<str:pk>/', views.deleteOrder, name="delete_order"),
]
我似乎找不到我的代码有什么问题。
【问题讨论】:
-
请在您的模板中添加
for开启代码和呈现table.html的视图代码,而不是delete.html。 -
显然 - 从错误消息中 -
order.id无法解析为模板中的有效值(因此url标记看到的是一个空字符串)。现在为什么会这样,没有人可以从您发布的内容中看出,所以请提供正确的minimal reproducible example。 -
您将
list传递给您的模板,而不是order。所以在你的模板中你需要使用list.id。或者将你的上下文变量重命名为order。
标签: django django-templates django-urls