Реверс для 'category_site' с аргументами '('',)' не найден. Проверено 1 шаблон(ы): ['(?P<category>[-a-zA-Z0-9_]+)\\Z']
Я пытаюсь сделать url и содержимое отображаемой в данный момент категории товара динамическими, используя один шаблон 'category.html', но продолжаю получать эту ошибку
urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('', display_records, name="display_records"),
path('about/', about_site, name="about_site"),
path('product/<int:id>', product_site, name="product_site"),
path('all_products/', all_products_site, name="all_products_site"),
path('<slug:category>', category_site, name="category_site"),]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
views.py
def product_site(request, id):
product = get_object_or_404(Farfocel, pk=id)
return render(request, 'product.html', {'product': product})
def category_site(request, category):
category_filter = (Q(category__icontains=category))
results = Farfocel.objects.filter(category_filter)
return render(request, 'category.html', {'products': results})
product.html
<ul class="breadcrumbs">
<li class="breadcrumbs__item">
<a href="{% url 'display_records' %}" class="breadcrumbs__link">Home</a>
</li>
<li class="breadcrumbs__item">
<a href="{% url 'all_products_site' %}" class="breadcrumbs__link">Products</a>
</li>
<li class="breadcrumbs__item">
<a href="{% url 'category_site' product.category %}" class="breadcrumbs__link">{{ product.category }}</a>
</li>
<li class="breadcrumbs__item">
<a href="" class="breadcrumbs__link breadcrumbs__link--active">{{ product }}</a>
</li>
Честно говоря, я перепробовал все, что смог найти, но все равно не смог.
Хорошо, я сделал это
Проблема заключалась в том, что я пытался получить
'product.category'
<li class="breadcrumbs__item">
<a href="{% url 'category_site' product.category %}" class="breadcrumbs__link breadcrumbs__link--active">{{ product.category }}</a>
</li>
при возврате в views.py 'products', но опечатка не была проблемой
def category_site(request, category):
category_filter = (Q(category__icontains=category))
results = Farfocel.objects.filter(category_filter)
return render(request, 'category.html', {'products': results})
Благодаря Джону я понял, что 'products' является QuerySet, который не имеет поля 'category', поэтому мне пришлось вернуть также один из объектов в этом QuerySet
def category_site(request, category):
category_filter = (Q(category__icontains=category))
results = Farfocel.objects.filter(category_filter)
product = results[0]
return render(request, 'category.html', {'products': results, 'product': product})
И таким образом все получилось, так что спасибо Джону