提问人:Kiana 提问时间:11/12/2023 更新时间:11/12/2023 访问量:27
NoReverseMatch Django - 属性打印在文件中的其他地方?
NoReverseMatch Django - Attribute printing elsewhere in file?
问:
我在 Django DeleteView 模板中收到“无反向匹配”错误。我做了一些研究,据说这是当 url 重定向的属性为空时引起的。
错误如下所示,但是成功按钮重定向按预期工作,它只是在我的“取消”选项上出错。
在这种情况下,生成此错误的 url 如下所示:
<a class="mt-3 mb-3 btn btn-secondary" id="cancel-btn" href="{% url 'post-detail' object.id %}">Cancel</a>
这意味着,“object.id”为空/空...
但是,我已将此属性添加到同一模板中的段落标签中,并且看到打印了正确的值(在本例中为 3)。
{% block content %}
<div>
<form method="POST">
{% csrf_token %} <!--required security token-->
<fieldset class="form-group">
<legend class="border-bottom mb-4">Delete Event</legend>
<p>Are you sure you want to delete the post "{{object.id}}"?</p>
</fieldset>
<div class="form-group text-center">
<button class="btn btn-danger m-3" type="submit">Yes, Delete</button>
<a class="mt-3 mb-3 btn btn-secondary" id="cancel-btn" href="{% url 'post-detail' object.id %}">Cancel</a>
</div>
</form>
</div>
{% endblock content %}
也许我错误地输入了我的代码,但我似乎无法弄清楚该值是如何被擦除并且无法为取消按钮 href 引用的?
我的 urls.py 供参考:
urlpatterns = [
path("", EventPostListView.as_view(), name="event-blog-home"),
path("event/<int:pk>/", EventPostDetailView.as_view(), name="post-detail"),
path("event/new/", EventPostCreateView.as_view(), name="post-create"),
path("event/<int:pk>/update/", EventPostUpdateView.as_view(), name="post-update"),
path("event/<int:pk>/delete/", EventPostDeleteView.as_view(), name="post-delete"),
]
所有 create、list(post-detail) 和 update 视图都包含此视图,并按预期工作。
答:
0赞
Kiana
11/12/2023
#1
感谢评论中的@willeM,我已经解决了这个问题。在我的 DeleteView 模板文件中,我使用“post.pk”而不是“object.pk”作为对模型实例的引用。
评论
post.pk
object.pk