Поиск по тегам

This commit is contained in:
Vinejar
2025-03-31 09:21:38 +03:00
parent bef6e0da3b
commit 13c1f0ccae
3 changed files with 208 additions and 70 deletions

View File

@@ -1,24 +1,36 @@
from django.shortcuts import render
from .models import manga_collection
from django.core.paginator import Paginator
from .models import manga_collection
def manga_catalog(request):
# Получаем все записи
all_manga = list(manga_collection.find({}))
# Получаем список всех уникальных тегов
all_tags = manga_collection.distinct("tags")
# Создаем пагинатор
paginator = Paginator(all_manga, 20)
# Получаем выбранные теги из GET-параметров
selected_tags = request.GET.getlist('tags')
# Формируем запрос для фильтрации
query = {}
if selected_tags:
query['tags'] = {'$all': selected_tags}
# Получаем отфильтрованные записи
filtered_manga = list(manga_collection.find(query))
# Пагинация
paginator = Paginator(filtered_manga, 20)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
# Получаем общее количество манги в базе
total_manga_count = manga_collection.count_documents({})
return render(request, 'manga_catalog.html', {
'page_obj': page_obj,
'manga_list': page_obj.object_list,
'total_manga_count': total_manga_count # Добавляем счетчик в контекст
'total_manga_count': total_manga_count,
'all_tags': sorted(all_tags),
'selected_tags': selected_tags
})
def show_manga(request, manga_id):