Files
hossein-por-shop/backend/home/views.py
T
2026-02-20 19:12:14 +03:30

60 lines
2.9 KiB
Python

from django.shortcuts import render, get_object_or_404, redirect
from rest_framework.views import APIView, Response
from product.models import ProductModel, SubCategoryModel, MainCategoryModel
from product.serializers import SubCategorySerializer, DynamicProductSerializer, MainCategorySerializer
from .serializers import *
from .models import *
from rest_framework import status
from django.views import View
class ChangeViewVideo(View):
def get(self, request, pk):
videomodel = get_object_or_404(LearnVideoModel, pk=pk)
videomodel.viewd = not videomodel.viewd
videomodel.save()
return redirect('admin:home_learnvideomodel_changelist')
class HomeView(APIView):
authentication_classes = []
def get(self, request):
sliders = SliderModel.objects.all()
slider_ser = SliderSerializer(instance=sliders, many=True, context={'request': request})
main_categories = MainCategoryModel.objects.filter(show_in_home=True)
main_category_ser = MainCategorySerializer(instance=main_categories, many=True, context={'request': request})
top_seller_products = ProductModel.objects.filter(show_in_top_seller=True)
top_seller_products_ser = DynamicProductSerializer(instance=top_seller_products, many=True, context={'request': request, 'view_type': 'list'})
lot_of_discount_products = ProductModel.objects.filter(show_in_lot_of_discount=True)
lot_of_discount_products_ser = DynamicProductSerializer(instance=lot_of_discount_products, many=True, context={'request': request, 'view_type': 'list'})
most_viewed_products = ProductModel.objects.filter(show_in_most_viewed=True)
most_viewed_products_ser = DynamicProductSerializer(instance=most_viewed_products, many=True, context={'request': request, 'view_type': 'list'})
trends_products = ProductModel.objects.filter(show_in_trends=True)
trends_products_ser = DynamicProductSerializer(instance=trends_products, many=True, context={'request': request, 'view_type': 'list'})
home_image = HomeImageModel.objects.all().first()
home_image_ser = HomeImageSerializer(instance=home_image, context={'request': request})
show_cases = ShowCaseSlider.objects.all()
show_cases_ser = ShowCaseSliderSerialzier(instance=show_cases, many=True, context={'request': request})
response = {
'sliders': slider_ser.data,
'main_categories': main_category_ser.data,
'products': [],
'top_seller_products': top_seller_products_ser.data,
'lot_of_discount_products': lot_of_discount_products_ser.data,
'most_viewed_products': most_viewed_products_ser.data,
'trends_products': trends_products_ser.data,
'difreance_section': home_image_ser.data,
'show_case_slider': show_cases_ser.data
}
return Response(response, status=status.HTTP_200_OK)