def all_users_page(request): activity(request) users = User.objects.all() paginator = Paginator(users, 8) page = request.GET.get('page') try: users = paginator.page(page) except PageNotAnInteger: # Если страница не является целым числом, поставим первую страницу users = paginator.page(1) except EmptyPage: # Если страница больше максимальной, доставить последнюю страницу результатов users = paginator.page(paginator.num_pages) return render(request, 'account/all_users.html', context={'page_obj': page, 'users': users, 'users_dict': to_dict_list(users)})
def to_dict(self): return { 'id': self.id, 'user': self.user.to_dict(), 'shop': self.shop, 'status': self.status, 'products': to_dict_list(self.products.all()), 'total_amount': self.get_amount(), 'delivery_status': self.delivery_method.name if self.delivery_method else 'Не выбрано', }
def shop(request, shop_id): activity(request) shop_obj = Shop.objects.filter(id=shop_id).first() products = to_dict_list(Product.objects.filter(shop_id=shop_id).all()) paginator = Paginator(products, 8) page = request.GET.get('page') try: products = paginator.page(page) except PageNotAnInteger: # Если страница не является целым числом, поставим первую страницу products = paginator.page(1) except EmptyPage: # Если страница больше максимальной, доставить последнюю страницу результатов products = paginator.page(paginator.num_pages) return render(request, 'shop_shop.html', context={'shop': shop_obj, 'products': products})
def home_page(request): activity(request) shops = Shop.objects.all().order_by('-rating')[:4] products = Product.objects.all().order_by('-rating')[:4] users = to_dict_list(User.objects.all().order_by('-rating')[:4]) mcs = MasterClass.objects.all().order_by('?')[:4] mcs_dict = [] for mc in mcs: mcs_dict.append(mc.to_dict()) for user in users: user['profile_link'] = f'{request.build_absolute_uri()}user/{user["id"]}/' context = { 'users': users, 'shops': shops, 'products': products, 'mcs': mcs_dict, 'card_products_count': request.user.cards.first().products.count() if request.user.is_authenticated and request.user.cards.first() and request.user.cards.first().products.first() else '0' } return render(request, 'home_page.html', context=context)
def all_blogs(request): activity(request) blog_objects = MasterClass.objects.all() paginator = Paginator(blog_objects, 5) page = request.GET.get('page') try: mcs = paginator.page(page) except PageNotAnInteger: # Если страница не является целым числом, поставим первую страницу mcs = paginator.page(1) except EmptyPage: # Если страница больше максимальной, доставить последнюю страницу результатов mcs = paginator.page(paginator.num_pages) return render(request, 'all_creative_blogs.html', context={ 'page_obj': page, 'articles': mcs, 'mcs': to_dict_list(mcs) })