Почему при нажатии на ссылки не отображаются товары?

Рейтинг: 0Ответов: 0Опубликовано: 31.05.2023

пишу код на Django, делаю простенький интернет-магазин, и решил написать фильтрацию товаров по категориям, однако мой код не работает, ссылки и адреса есть, отображаются, однако при нажатии товары не появляются

models.py

class Category(models.Model):
    name = models.CharField(max_length=30, unique=True)
    url = models.SlugField(max_length=100,unique=True,null=True)
class Product(models.Model):
    category = models.ForeignKey(Category, on_delete = models.CASCADE)
    name = models.CharField(max_length=50)
    price = models.IntegerField()
    date = models.DateTimeField(null = True)
    url = models.SlugField(max_length=100,unique=True,null=True)

views.py

def index(request):
    data = Product.objects.all()
    categ = Category.objects.all()
    return render(request,'magazin/index.html',{'data' : data,'cat' : categ})

def cat(request,url):
    cat = Category.objects.all()
    prod = Product.objects.filter(category__url = url)
    return render(request,'magazin/index.html',{'cat':cat,'prod':prod})

url.py

urlpatterns = [
    path('',views.index,name='index'),
    path('<slug:url>/',views.cat,name='vc')
]

index.html

{%extends 'base.html'%}

{%block title%}ГЛАВНАЯ{%endblock%}

{%block content%}
<h1>КАТЕГОРИИ</h1>
    {% for i in cat %}
        <div>
            <a href="/{{i.url}}">{{i.name}}</a>
        </div>
    {% endfor %}
    <h1>ТОВАРЫ</h1> 
    {% for i in data %}
        <div class="p">
           <h4><b>НАЗВАНИЕ: </b>{{i.name}}</h4>
           <h4><b>ЦЕНА: </b>{{i.price}}</h4>
           <h4><b>КАТЕГОРИЯ: </b>{{i.category}}</h4>
           {% if i.is_recently %}
                <h1 class="p">НЕДАВНО В ПРОДАЖЕ!</h1> 
           {% endif %}                                                                                                                            
           <hr>                      
        </div>
    {% endfor %}                                   
{%endblock%}

Ответы

Ответов пока нет.