Я хочу показать товары по категориям, используя функцию . (.filter)

Я новичок в Django, я хочу показать товары по категориям, используя .feature (.filter), Я пытался много раз, но у меня не получилось, надеюсь, кто-нибудь сможет мне помочь.

Пожалуйста, напишите код с объяснением

МОДЕЛИ:

from django.db import models
        
        # Create your models here.
        
        class Category(models.Model):
            name = models.CharField(max_length=200)
            slug = models.CharField(max_length=200)
        
        
        def __str__(self):
            return self.name
        
        class Product(models.Model):
            Category = models.ForeignKey(Category, on_delete=models.CASCADE)
            name = models.CharField(max_length=200, null=False, blank=False)
            slug = models.CharField(max_length=200, null=False, blank=False)
            description = models.TextField(max_length=350, null=False, blank=False)
            image = models.ImageField( null=False, blank=False)
            quantity = models.IntegerField(null=False, blank=False)
        
        
        def __str__(self):
            return self.name

УРЛЫ:

from django.urls import path
from . import views
urlpatterns = [
    path('', views.home, name="home"),
    path('f/<str:slug>', views.fd, name="fd"),
    path('category', views.category, name="category"),
    path('category/<str:slug>', views.categoryslug, name="categoryslug"), 
]

ПРОСМОТРОВ:

def home(request):
    context = {
        'Pr': Product.objects.all(),
    }
    return render(request, 'pages/home.html', context)


def fd(request, slug):
    context = {
        'gfd' : Product.objects.get(slug=slug),
    }
    return render(request, 'pages/product.html', context)


    
def category(request):
    context = {
        'Categorys': Category.objects.all(),
    }
    return render(request, 'pages/category.html', context)

Пожалуйста, напишите код с объяснением

мне нужно показать товар по категориям

pages/category.html

{% for cat in Categorys %}
    {{ cat.name }}
    {% for obj in cat.product_set.all %}
        {{ obj.name }}
    {% endfor %}
{% endfor %}

Если вы имеете в виду, что вам нужна реализация для categoryslug, предположительно, страница для показа категории и ее продуктов, что-то вроде

def categoryslug(request, slug):
    category = Category.objects.get(slug=slug)
    context = {
        'category': category,
        'products': category.product_set.all(),
    }
    return render(request, 'pages/products-in-category.html', context)

было бы хорошим "голым" началом.

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