Поиск по тегам
This commit is contained in:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user