Py学习  »  Django

HTML模板中的django按钮创建了我无法解决的错误

A I • 4 年前 • 808 次点击  

我的代码很简单,但我承认我是从互联网上获取的。 我想通过单击按钮来更新模型。它是由变量选择的。所以我有这个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'),

在视图中.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.

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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38641
 
808 次点击  
文章 [ 2 ]  |  最新文章 4 年前
A I
Reply   •   1 楼
A I    5 年前

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

我建议每个刚加入Django的人为每个模型创建一个ID字段。因为这样可以很容易地用来传递参数。鼻涕虫更复杂,使生活变得不必要的困难!

Sayse
Reply   •   2 楼
Sayse    5 年前

对于django 2.0中的regex模式,需要使用 re_path ,而不是 path 为你的网址。