Реверс для 'tagged' с аргументами '('',)' не найден. Проверен 1 шаблон(ы): ['\\^tag/\\(\\?P(?P<slug>[^/]+)\\[\\-\\\\w\\]\\+\\)/\\$$']

Я продолжаю получать сообщение об ошибке "Reverse for 'tagged' with arguments '('',)' not found. 1 pattern(s) tried: ['\^tag/\(\?P(?P[^/]+)\[\-\\\w\]\+\)/\$$']" при попытке загрузить мой base.html, из-за тега якоря. Я просмотрел посты других людей с такой же проблемой, но я все еще не знаю, где я ошибаюсь. Пожалуйста, помогите.
views.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'})

urls.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" и некоторые другие. Заранее спасибо.

  1. Используйте re_path() вместо path() для регулярных выражений.

    Ссылка: https://docs.djangoproject.com/en/3.2/topics/http/urls/#using-regular-expressions

    .
  2. Используйте [-\w]* (0 или более) вместо [-\w]+ (1 или более), чтобы разрешить пустую строку ('',).

Вернуться на верх