Невозможно отфильтровать товары по категориям. Категории не отображаются при нажатии Django

enter image description here

Я пытаюсь отфильтровать объявления/продукты по категориям, нажатие на название любой категории должно привести пользователя на страницу, которая отображает все объявления в этой категории.

Когда я нажимаю на вкладку "Категория", отображаются названия категорий, которые были перечислены, но не отображаются листинги/продукты, прикрепленные к этой категории.

Я реализовал это до сих пор и хотел бы получить помощь, чтобы узнать, почему у меня возникает эта ошибка.

URLS.PY

    path("category", views.all_category, name="all_category"),

MODELS.PY

class Category(models.Model):
    name = models.CharField(max_length=25)

    def __str__(self):
        return self.name

class Auction(models.Model):
    title = models.CharField(max_length=25)
    description = models.TextField()
    current_bid = models.IntegerField(null=False, blank=False)
    image_url = models.URLField(verbose_name="URL", max_length=255, unique=True, null=True, blank=True)
    created_at = models.DateTimeField(auto_now_add=True)
    category = models.ForeignKey(Category, max_length=12, null=True, blank=True, on_delete=models.CASCADE)

LAYOUT.HTML

                <ul class="navbar-nav mr-auto">
                    <li class="nav-item">
                        <a class="nav-link" href="{% url 'index' %}">Active Listings</a>
                    </li>
                    <li class="nav-item">
                            <a class="nav-link" href="{% url 'all_category' %}">Category</a>
                            {% for category in categories %}
                                <a class="nav-link" href="{% url 'all_category' %}?category={{ category.name}}">{{ category.name}}</a>
                            {% endfor %}
                    </li>

VIEWS.PY

def all_category(request):
    categories = Category.objects.all()

    category = request.GET.get('category')

    if category == None:
        products = Auction.objects.all().order_by('-created_at')
    else:
        products = Auction.objects.filter(category__name=category)

    context = {'categories':categories, 'products':products}
    return render(request, 'auctions/layout.html', context)  

Я также пытался реализовать это, но это показалось хуже, так как не отображались объявления

FAILEDVIEWS.PY

 def solo_category(request, name):

#     if(Category.objects.filter(name=name)):
#         products = Auction.objects.filter(category__name=name).order_by('-created_at')
#         category_name = Category.objects.filter(name=name).first()
#         context = {'products':products, 'category_name':category_name}
#         return render(request, 'auctions/layout.html', context)  
#     else:
#         messages.warning(request, 'This category is not available')
#         return HttpResponseRedirect(reverse("index"))
Вернуться на верх