Почему не отображает результаты поиска?

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

Я делаю поиск по полю name на своём сайте, однако когда я нажимаю на кнопку ПОИСК, результатов поиска не вижу.

views.py (только нужные классы):

class Index(ListView):
    model = Product
    template_name = 'magazin/index.html'
    context_object_name = 'page'
    queryset = (Product
        .objects.select_related('category')
         .filter(is_on_main=True)
         .values('pk','name','price','ir'))

    def get_context_data(self, **kwargs):
        ctx = super().get_context_data(**kwargs)
        ctx['cat'] = Category.objects.all()
        return ctx

class Search(ListView):
    def get_queryset(self):
        return Product.objects.filter(name__icontains=self.request.GET.get('q'))

    def get_context_data(self, *args,**kwargs):
        ctx = super().get_context_data(*args,**kwargs)    
        ctx['q'] = self.request.GET.get('q')
        return ctx

models.py (Product):

class Product(models.Model):
    is_on_main = models.BooleanField(default=False)
    category = models.ForeignKey(Category, on_delete = models.CASCADE)
    name = models.CharField(max_length=50)
    price = models.IntegerField()
    date = models.DateTimeField(null = True,auto_now=True)
    url = models.SlugField(max_length=100,unique=True,null=True)
    description = models.TextField(max_length=2000,default='Описание')
    def __str__(self):
        return self.name
    
    class Meta:
        ordering = '-date',

index.html:

{%extends 'base.html'%}

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

{%block content%}
<div>
<h1>КАТЕГОРИИ</h1>
    {% for i in cat %}
            <a href="/{{i.url}}">{{i.name}}</a>
        </div>
    {% endfor %}
    <form action="{% url 'search' %}" method="get">
        <input class="g" type="search" placeholder="Я ищу..." name='q'>
        <button type="submit">ПОИСК</button>
    </form>
    
    <h1>ТОВАРЫ</h1> 
    {% for i in page %}
        <div>
           <h4><b>НАЗВАНИЕ: </b>{{i.name}}</h4>
           <h4><b>ЦЕНА: </b>{{i.price}}</h4>
           <a href="{% url 'detail' pk=i.pk %}">ПОДРОБНЕЕ</a>                                                                                                                            
           <hr>                          
    {% endfor %}
    {% for p in page.paginator.page_range %}
            <li>
                <a href="?page={{p}}">{{p}}</a>
            </li>
    {%endfor%}
</div>
    <a href="/">ВСЕ ТОВАРЫ</a>
    <a href="{% url 'add'%}">Добавить товар</a>                                  
{%endblock%}

urls.py:

from django.urls import path
from . import views
urlpatterns = [
    path('',views.Index.as_view(),name='index'),
    path('<slug:url>/',views.cat,name='vc'),
    path('<int:pk>', views.Detail.as_view(),name='detail'),
    path('add',views.add,name='add'),
    path('search/',views.Search.as_view(),name='search')
]

Ответы

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