1

我不断收到此错误消息:

未找到带有参数 '('',)' 的 'tagged' 的反向操作。尝试了 1 种模式:['\^tag/\(\?P(?P[^/]+)\[\-\\w\]\+\)/\$$']

由于锚标记,尝试加载我的 base.html 时。我看过其他有同样问题的帖子,但我仍然不知道我哪里出错了。

视图.py

class TagIndexView(TagMixin, ListView):
    template_name = 'post/index.html'
    model = Post
    paginate_by = '10'
    context_object_name = 'posts'

    def get_queryset(self):
        return Post.objects.filter(tags__slug=self.kwargs.get('slug'))

def tagged(request):
    return render(request, 'blog/tagged.html', {'title': 'Tagged'})

网址.py

path(r'^tag/(?P<slug>[-\w]+)/$',TagIndexView.as_view, name='tagged')

base.html
锚标签:

<li class="list-group-item"><a href="{% url 'tagged' tag.slug %}">Tags</a></li>

但我一直得到一个 NoReverseMatch。在锚标记中,我尝试了“tag.slug”、“tag.id”、“tag.pk”等。

4

1 回答 1

-1
  1. 使用re_path()代替path()正则表达式。

    参考:https ://docs.djangoproject.com/en/3.2/topics/http/urls/#using-regular-expressions

  2. 使用[-\w]*(0 or more) 而不是[-\w]+(1 or more) 来允许空字符串('',)

于 2021-11-08T22:07:48.590 回答