Реверс для '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})

И таким образом все получилось, так что спасибо Джону

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