fix: show product in replacement of sub products in homepage
This commit is contained in:
+21
-7
@@ -1,11 +1,12 @@
|
||||
import random
|
||||
|
||||
from django.db.models import Prefetch
|
||||
from django.http import JsonResponse
|
||||
from django.shortcuts import render
|
||||
from django.views import View
|
||||
from django.views.generic import DetailView, ListView, TemplateView
|
||||
|
||||
from apps.products.models import SubProduct
|
||||
from apps.products.models import MainProduct, SubProduct
|
||||
|
||||
from .forms import ContactForm
|
||||
from .models import (
|
||||
@@ -18,6 +19,19 @@ from .models import (
|
||||
)
|
||||
|
||||
|
||||
def _homepage_products_catalog_queryset():
|
||||
return (
|
||||
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")
|
||||
)
|
||||
|
||||
|
||||
class HomeView(TemplateView):
|
||||
template_name = "pages/home.html"
|
||||
|
||||
@@ -29,11 +43,11 @@ class HomeView(TemplateView):
|
||||
.prefetch_related("items")
|
||||
.order_by("order")
|
||||
)
|
||||
ctx["sub_products"] = (
|
||||
SubProduct.objects.filter(is_active=True, show_on_homepage=True)
|
||||
.select_related("main_product")
|
||||
ctx["homepage_products"] = (
|
||||
MainProduct.objects.filter(is_active=True, show_on_homepage=True)
|
||||
.order_by("homepage_order", "order")
|
||||
)
|
||||
ctx["homepage_products_catalog"] = _homepage_products_catalog_queryset()
|
||||
return ctx
|
||||
|
||||
|
||||
@@ -115,9 +129,9 @@ class CustomPageView(DetailView):
|
||||
.prefetch_related("items")
|
||||
.order_by("order")
|
||||
)
|
||||
ctx["sub_products"] = (
|
||||
SubProduct.objects.filter(is_active=True, show_on_homepage=True)
|
||||
.select_related("main_product")
|
||||
ctx["homepage_products"] = (
|
||||
MainProduct.objects.filter(is_active=True, show_on_homepage=True)
|
||||
.order_by("homepage_order", "order")
|
||||
)
|
||||
ctx["homepage_products_catalog"] = _homepage_products_catalog_queryset()
|
||||
return ctx
|
||||
|
||||
Reference in New Issue
Block a user