html模板中的Django按钮产生我无法解决的错误



我的代码很简单,但我承认我是从互联网上获取的。 我想通过单击按钮来更新模型。哪个模型,由变量选择。所以我有这个 html 代码:

<form action="{% url 'reception:update_status' slug=name %}" method="POST">
{% csrf_token %}
<input type="submit" value="has arrived">
</form>

此代码为 url.py

re_path('update_status/(?P<slug>[-a-zA-Z0-9_]+)$', views.update_status, name='update_status'),

并在 views.py

def update_status(request, slug):
if request.method == 'POST':
p = MyModel.objects.filter(name=slug)
p.status = 'is waiting'
p.update()
return redirect(request, 'home')

现在有了这样的代码,当我单击按钮时,它会返回以下错误!

Reverse for '<WSGIRequest: POST '/update_status/Name10'>' not found. '<WSGIRequest: POST '/update_status/Name10'>' is not a valid view function or pattern name.

我不知道这意味着什么。请帮忙? 谢谢

对于 Django 2.0 中的正则表达式模式,您需要使用re_path,而不是path作为你的 url。

我用pk而不是slugs解决了这个问题。

我建议所有刚接触 Django 的人为每个模型创建一个 id 字段。因为这可以用来非常容易地传递参数。鼻涕虫更复杂,让生活变得不必要地困难!

最新更新