Разбиение на страницы Django для продуктов, проблема с разбиением на страницы при запросе ⇐ Python
Разбиение на страницы Django для продуктов, проблема с разбиением на страницы при запросе
Я работаю над проектом Django по созданию веб-сайта и столкнулся с проблемой при фильтрации через панель поиска по имени; нумерация страниц работает неправильно.
При фильтрации
def mart(запрос): запрос = request.GET.get('q') температура = request.GET.get('температура') если температура Нет: температура = 150 продукты = Product.objects.all() если запрос: продукты = продукты.фильтр(Q(имя__icontains=запрос)) для продукта в продуктах: последний_лог = Log.objects.filter(product_uuid=product).order_by('-date').first() если последний_лог: temp = последний_журнал.курс_темп продукт.температура = температура еще: продукт.температура = 0 продукты = отсортировано (продукты, ключ = лямбда x: x.temperature, обратный = True) paginator = Paginator(продукты, 20) номер_страницы = request.GET.get('страница') page_products = paginator.get_page(номер_страницы) Product_info_list = [] для продукта в page_products: Latest_log = Log.objects.filter(product_uuid=product,course_temp__lte=temperature).order_by('-date').first() all_productbadges = Productbadge.objects.filter(product_uuid=продукт) значки_urls = [] если all_productbadges: для значка продукта в all_productbadges: badge_id = productbadge.badge_id Badge_instance = Badge.objects.filter(label=badge_id).first() если значок_экземпляр: бейдж_url = бейдж_экземпляр.url tags_urls.append(badge_url) если последний_лог: информация_продукта = { «продукт»: продукт, 'последний_журнал': последний_журнал, 'badges_urls': badges_urls } Product_info_list.append(product_info) Распечатать("@@@@@@@@@") печать(page_products.next_page_number) контекст = {'product_info_list': Product_info_list, 'page_products': page_products} вернуть рендер (запрос, 'courses/mart.html', контекст = контекст) paginator = Paginator(продукты, 20) номер_страницы = request.GET.get('страница') page_products = paginator.get_page(номер_страницы) Product_info_list = [] для продукта в page_products: Latest_log = Log.objects.filter(product_uuid=product,course_temp__lte=temperature).order_by('-date').first() all_productbadges = Productbadge.objects.filter(product_uuid=продукт) значки_urls = [] если all_productbadges: для значка продукта в all_productbadges: badge_id = productbadge.badge_id Badge_instance = Badge.objects.filter(label=badge_id).first() если значок_экземпляр: бейдж_url = бейдж_экземпляр.url tags_urls.append(badge_url) если последний_лог: информация_продукта = { «продукт»: продукт, 'последний_журнал': последний_журнал, 'badges_urls': badges_urls } Product_info_list.append(product_info) контекст = {'product_info_list': Product_info_list, 'page_products': page_products} вернуть рендер (запрос, 'courses/mart.html', контекст = контекст) При фильтрации нумерации страниц мне показываются параметры, но когда я нажимаю «SIGUIENTE» (далее), отображается ВТОРАЯ страница для всех продуктов, в основном фильтр отсутствует
введите здесь описание изображения введите сюда описание изображения
введите здесь описание изображения
После нажатия кнопки «SIGUENTE» отображается страница 2 из общего числа продуктов, а не отфильтрованная. введите сюда описание изображения
Спасибо за поддержку
Помощь по коду итератора-пагинатора для поиска по запросу.
Я работаю над проектом Django по созданию веб-сайта и столкнулся с проблемой при фильтрации через панель поиска по имени; нумерация страниц работает неправильно.
При фильтрации
def mart(запрос): запрос = request.GET.get('q') температура = request.GET.get('температура') если температура Нет: температура = 150 продукты = Product.objects.all() если запрос: продукты = продукты.фильтр(Q(имя__icontains=запрос)) для продукта в продуктах: последний_лог = Log.objects.filter(product_uuid=product).order_by('-date').first() если последний_лог: temp = последний_журнал.курс_темп продукт.температура = температура еще: продукт.температура = 0 продукты = отсортировано (продукты, ключ = лямбда x: x.temperature, обратный = True) paginator = Paginator(продукты, 20) номер_страницы = request.GET.get('страница') page_products = paginator.get_page(номер_страницы) Product_info_list = [] для продукта в page_products: Latest_log = Log.objects.filter(product_uuid=product,course_temp__lte=temperature).order_by('-date').first() all_productbadges = Productbadge.objects.filter(product_uuid=продукт) значки_urls = [] если all_productbadges: для значка продукта в all_productbadges: badge_id = productbadge.badge_id Badge_instance = Badge.objects.filter(label=badge_id).first() если значок_экземпляр: бейдж_url = бейдж_экземпляр.url tags_urls.append(badge_url) если последний_лог: информация_продукта = { «продукт»: продукт, 'последний_журнал': последний_журнал, 'badges_urls': badges_urls } Product_info_list.append(product_info) Распечатать("@@@@@@@@@") печать(page_products.next_page_number) контекст = {'product_info_list': Product_info_list, 'page_products': page_products} вернуть рендер (запрос, 'courses/mart.html', контекст = контекст) paginator = Paginator(продукты, 20) номер_страницы = request.GET.get('страница') page_products = paginator.get_page(номер_страницы) Product_info_list = [] для продукта в page_products: Latest_log = Log.objects.filter(product_uuid=product,course_temp__lte=temperature).order_by('-date').first() all_productbadges = Productbadge.objects.filter(product_uuid=продукт) значки_urls = [] если all_productbadges: для значка продукта в all_productbadges: badge_id = productbadge.badge_id Badge_instance = Badge.objects.filter(label=badge_id).first() если значок_экземпляр: бейдж_url = бейдж_экземпляр.url tags_urls.append(badge_url) если последний_лог: информация_продукта = { «продукт»: продукт, 'последний_журнал': последний_журнал, 'badges_urls': badges_urls } Product_info_list.append(product_info) контекст = {'product_info_list': Product_info_list, 'page_products': page_products} вернуть рендер (запрос, 'courses/mart.html', контекст = контекст) При фильтрации нумерации страниц мне показываются параметры, но когда я нажимаю «SIGUIENTE» (далее), отображается ВТОРАЯ страница для всех продуктов, в основном фильтр отсутствует
введите здесь описание изображения введите сюда описание изображения
введите здесь описание изображения
После нажатия кнопки «SIGUENTE» отображается страница 2 из общего числа продуктов, а не отфильтрованная. введите сюда описание изображения
Спасибо за поддержку
Помощь по коду итератора-пагинатора для поиска по запросу.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение