from django.db.models import Prefetch from apps.core.models import SiteBranding, SiteContact from apps.products.models import MainProduct, SubProduct def site_branding(request): return {"site_branding": SiteBranding.load()} def site_contact(request): return {"site_contact": SiteContact.load()} def navigation(request): main_products = ( MainProduct.objects.filter(is_active=True) .prefetch_related( Prefetch( "sub_products", queryset=SubProduct.objects.filter(is_active=True).order_by( "order", "name" ), ) ) .order_by("order", "name") ) all_footer_products = list(main_products[:5]) footer_main_products = all_footer_products[:4] footer_main_products_has_more = len(all_footer_products) == 5 return { "nav_main_products": main_products, "footer_main_products": footer_main_products, "footer_main_products_has_more": footer_main_products_has_more, }