NoReverseMatch Django - 在文件中的其他位置打印属性?

问题描述 投票:0回答:1

我在 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"),
]

所有创建、列表(详细信息后)和更新视图都包含此视图并按预期工作。

python html django django-templates django-urls
1个回答
0
投票

感谢评论中的@willeM,我已经解决了这个问题。在我的 DeleteView 模板文件中,我使用“post.pk”而不是“object.pk”作为对模型实例的引用。

© www.soinside.com 2019 - 2024. All rights reserved.