找不到带有参数“('',)”的“ editPost”。尝试了1个模式:['editPost /(?P <postslug> [^ /] +)/ $']

时间:2019-12-07 05:36:24

标签: django django-templates django-urls

我在模板下面看到此错误

{% for post in post_queryset %}
                <div class="card-body">
                  <div class="date">{{ post.created_date }}</div>
                  <div class="title">
                    {{ post.text }}
                    {{ post.slug }}
                    <a href="{% url 'editPost' post.slug %}" ><i class="fa fa-edit"></i></a>
                    <a onClick="delete_post('{{post.slug}}','{{post_id}}')"><i class="fa fa-trash-o"></i></a>
                  </div>
                </div>
{% endfor %}

此行出现错误

<a href="{% url 'editPost' post.slug %}" ><i class="fa fa-edit"></i></a>

我在此行之前显示了{{post.slug}},并注释了链接行,以确保post.slug包含一些内容。看起来post.slug具有有效的子弹信息。

我还尝试传递一些字符串,而不是像下面那样传递post.slug,然后它就起作用了

<a href="{% url 'editPost' 'some_string' %}" ><i class="fa fa-edit"></i></a>

我的urls.py如下所示

path('editPost/<postslug>/',views.editPost, name='editPost')

有人可以帮助我找到错误吗?

2 个答案:

答案 0 :(得分:0)

将网址格式更改为:

path('editPost/<slug:postslug>/',views.editPost, name='editPost')

也将链接更改为:

<a href="{% url 'editPost' some_string %}" >

答案 1 :(得分:0)

我收到了错误消息,因为在所有帖子中,有一个帖子的空子弹字段导致了错误。