【问题标题】:NoReverseMatch: Reverse for 'deleted' with no arguments not found. - DjangoNoReverseMatch:为“已删除”反向,未找到任何参数。 - 姜戈
【发布时间】:2018-04-21 21:14:36
【问题描述】:

我是 Django 的新面孔,所以如果我的问题是愚蠢的,请考虑一下。所以我一直在练习 Django,目前正在制作一个 CRUD,但是我遇到了与 NoReverseMatch 相关的问题,我在 stackoverflow 中查看了答案,但仍然找不到哪里出错了。你能帮我一点吗?实际上它正在工作,当我重置数据库时,不知何故它出现了错误,也许我移动了一些东西或者我做了什么不走运的事情。实际上我已经玩了3个小时了。就是这个错误。所以请帮助我:

回溯表明 NoReverseMatch 位于以下网址:

<a href="{%url 'deleted'%}">Delete</a>

我在我的 urls.py 中正确地合作并连接了以下内容。

url(r'^delete/(?P<pk>\d+)/', Delete.as_view(), name="deleted"),

这是代码的要点:

deleteupdate/urls.py(删除和更新来自导入文件的模型)

urlpatterns = [

    url(r'^', views.list, name='list'),

    url(r'^delete/(?P<pk>\d+)/', Delete.as_view(), name="deleted"),

    url(r'^update/(?P<pk>\d+)/', Update.as_view(), name="updated"),

    url(r'^(?P<student_id>)/', views.detail, name='detail'),

]

ma​​in/urls.py

urlpatterns = [
    url(r'^$', include('index.urls')),
    url(r'^admin/', admin.site.urls),
    url(r'^list/', include('deleteupdate.urls')),

]

这是 HTML:

{% if all_students %}

<ul>
    {% for user in all_users %}
    <li><a href="/list/{{ user.id }}"></a>



<button type="button">
<a href="{%url 'deleted'%}">Delete</a>
</button>


<button type="button">
<a href='{% url 'updated' %}'>Update</a>
</button>
{% endfor%}
</ul>

{% else %}
<h3>Users is empty</h3>
{% endif %}

我做错了什么?我想我已经遵循了我能找到的每一个建议,但是它仍然给了我错误。任何帮助表示赞赏。非常感谢!

这里是错误顺便说一句:

/list/ 处的 NoReverseMatch

未找到参数的“已删除”反向。尝试了 1 种模式: ['列表/删除/(?P\d+)/']

【问题讨论】:

  • 您的deleted URL 要求您指定pk,但您没有。你需要做{% url 'deleted' &lt;pk here&gt; %}。
  • @Blurp 同样的想法,我尝试了他的代码,它使用我在下面写的答案对我有用,但是 pk='user.id' 有问题,网址不会重定向,它一无所获,我很感兴趣为什么会这样。我是否以错误的方式通过了pk?请赐教。

标签: python django


【解决方案1】:

我遇到了这个问题,问题是我忘记在 url 后面加上客户 ID

<form method="post" action="{% url 'deleteCustomer' **customer.id** %}">

【讨论】:

    【解决方案2】:

    我知道我写这个错误的解决方案已经太晚了,我知道你肯定已经解决了你的错误。但我仍然为那些陷入这种问题的人发布这个。 我通过更改 HTML 文件的删除按钮代码解决了这个问题: 只需更改您的代码:

    <button type="button">
    <a href="{%url 'deleted'%}">Delete</a>
    </button>
    

    到:

    <button type="button">
    <a href="{%url 'deleted' pk=student.pk %}">Delete</a>
    </button>
    

    【讨论】:

      【解决方案3】:

      您需要&lt;pk&gt; 与您的网址匹配,以便匹配。我为你编辑了这部分:

      {% for student in all_students %}
      <li><a href="/list/{{ student.id }}">{{ student.first_name }} {{ student.last_name }} ({{ student.course }})</a>
      
      <p><a class="btn btn-lg btn-success" href="{% url "delete" pk=student.id %}"role="button">Delete</a>
                  <a class="btn btn-lg btn-success" href="{% url "update" pk=student.id %}" role="button">Update</a>
      
       </p>
      
      {% endfor%}
      

      【讨论】:

      • user.id 周围不应有引号。
      • 谢谢,但我的链接不起作用,知道为什么会这样吗?
      • @AnnYoon 尝试在 user.id 周围不加引号,就像 Blurp 建议的那样
      • 我更改了链接仍然无法正常工作。我可以访问详细信息视图,但是当我单击删除和更新按钮时,什么也没有发生,这可能是网址的问题吗?还是另外一回事?
      • @AnnYoon 啊,这是你的 HTML 的问题,看看你的按钮。
      猜你喜欢
      • 1970-01-01
      • 2018-06-28
      • 2021-03-01
      • 2013-12-22
      • 2017-01-14
      • 1970-01-01
      • 2020-12-19
      • 2013-07-25
      • 2018-09-08
      相关资源
      最近更新 更多