NoReverseMatch带有slug变量,适用于硬编码值

时间:2019-03-09 23:00:36

标签: django

我正在将一些代码从Django 1.11项目更新到Django 2.x,并且在一个模板中(将FK返回到客户的联系人列表视图),我收到了“ NoReverseMatch”,因为它没有看到URL参数。如果我对值进行硬编码,并且仅在页面上以文本形式显示,则相同的变量将为每个记录显示正确的值。
我不明白为什么变量会被删除,但可能是我做过的愚蠢的事情。
这有效:

<td class="">
<a href="{% url "clients:view" slug='sony' %}">
{{ contact.client.slug  }} 
</a>
</td>

这会出现NoReverse错误

<td class="">
<a href="{% url "clients:view" slug=contact.client.slug %}">
{{ contact.client.slug  }}
</a>
</td>

在两种情况下,变量{{contact.client.slug}}返回正确的数据。

urls.py:

import ...

app_name = "clients"
urlpatterns = [
    path("ajax/validate_client_code", validate_client_code, name="validate_client_code"),
    path("", ClientListView.as_view(), name="list"),
    path("new/", ClientCreateView.as_view(), name="new"),
    path("edit/<slug:slug>/", ClientUpdateView.as_view(), name="edit"),
    path("delete/<int:pk>/", ClientDeleteView.as_view(), name="delete"),
    path("<slug:slug>/", ClientDetailView.as_view(), name="view"),
]

有人可以指出我的错误吗?必须非常简单,但是我看不到它。

0 个答案:

没有答案