Я пытаюсь заставить регулярное выражение (Django URL) работать с набором запросов. Я пробовал разные шаблоны с URL шаблона, но это не сработало.
Общий ListView:
class ProductListView(ListView):
template_name = "main/product_list.html"
paginate_by = 4
def get_queryset(self):
tag = self.kwargs["tag"]
self.tag = None
if tag != "all":
self.tag = get_object_or_404(
models.ProductTag, slug=tag
)
if self.tag:
products = models.Product.objects.active().filter(
tags=self.tag
)
else:
products = models.Product.objects.active()
return products.order_by("name")
Мой URL:
path("products/<slug:tag>/", views.ProductListView.as_view(), name='products'),
Шаблон:
Я не мог заставить его работать в темпале, как показано ниже. Я пытался передать разные аргументы ключевых слов, но это не работает:
<li class="nav-item">
<a class="nav-link" href="{% url 'products' %}">Products</a>
</li>
Error
Reverse for 'products' with arguments '('',)' not found. 1 pattern(s) tried: ['products\\/(?P<tag>[-a-zA-Z0-9_]+)\\/$']