我在Django应用中看到这个错误
NoReverseMatch at /kaitorihyou/delete_fields_group/18
Reverse for 'delete_fields_group' with arguments '('',)' not found. 1 pattern(s) tried: ['kaitorihyou/delete_fields_group/(?P<fields_group_id>[0-9]+)\Z']
这是我的模板中重定向到此URL 的行
<form action="{% url 'kaitorihyou:delete_fields_group' fields_group_id %}" method="delete">
我的urls.py
在问题中确实包含此模式
app_name = "kaitorihyou"
urlpatterns = [
path('delete_fields_group/<int:fields_group_id>', views.delete_fields_group, name="delete_fields_group"),
# etc.
]
为什么url模式不匹配?
如果我将表单中的action=
更改为此,则有效
<form action="/kaitorihyou/delete_fields_group/{{ fields_group_id }}" method="delete">
自己找到了答案。
问题是urls.py没有包含尾部斜杠,所以
# this is wrong
path('delete_fields_group/<int:fields_group_id>', ...),
# should be this
path('delete_fields_group/<int:fields_group_id>/', ...),