remove dollor model cuclation and fix price filter bug

This commit is contained in:
Parsa Nazer
2025-03-11 01:36:42 +03:30
parent 4255910e81
commit d3da83d7e9
3 changed files with 11 additions and 19 deletions
+2 -4
View File
@@ -1,6 +1,6 @@
from django.db import models from django.db import models
from account.models import User from account.models import User
from product.models import ProductModel, DollorModel from product.models import ProductModel
from django.conf import settings from django.conf import settings
import openai import openai
from time import sleep from time import sleep
@@ -24,9 +24,7 @@ class ProductChatModel(models.Model):
def save(self, *args, **kwargs): def save(self, *args, **kwargs):
if not self.thread: if not self.thread:
client = openai.OpenAI(api_key=settings.OPENAI_API_KEY) client = openai.OpenAI(api_key=settings.OPENAI_API_KEY)
dollor_object, _ = DollorModel.objects.get_or_create(unique_filed='unique') product_json = DynamicProductSerializer(instance=self.product, context={'view_type': 'chat'}).data
dollor_price = dollor_object.price
product_json = DynamicProductSerializer(instance=self.product, context={'dollor_price': dollor_price, 'view_type': 'chat'}).data
try: try:
thread = client.beta.threads.create( thread = client.beta.threads.create(
+1 -3
View File
@@ -20,8 +20,6 @@ class HomeView(APIView):
authentication_classes = [] authentication_classes = []
def get(self, request): def get(self, request):
dollor_object, _ = DollorModel.objects.get_or_create(unique_filed='unique')
dollor_price = dollor_object.price
sliders = SliderModel.objects.all() sliders = SliderModel.objects.all()
slider_ser = SliderSerializer(instance=sliders, many=True, context={'request': request}) slider_ser = SliderSerializer(instance=sliders, many=True, context={'request': request})
@@ -30,7 +28,7 @@ class HomeView(APIView):
sub_category_ser = SubCategorySerializer(instance=sub_categories, many=True, context={'request': request}) sub_category_ser = SubCategorySerializer(instance=sub_categories, many=True, context={'request': request})
products_to_show = ProductModel.objects.filter(show=True) products_to_show = ProductModel.objects.filter(show=True)
product_ser = DynamicProductSerializer(instance=products_to_show, many=True, context={'request': request, 'dollor_price': dollor_price, 'view_type': 'list'}) product_ser = DynamicProductSerializer(instance=products_to_show, many=True, context={'request': request, 'view_type': 'list'})
home_image = HomeImageModel.objects.all().first() home_image = HomeImageModel.objects.all().first()
home_image_ser = HomeImageSerializer(instance=home_image, context={'request': request}) home_image_ser = HomeImageSerializer(instance=home_image, context={'request': request})
+8 -12
View File
@@ -54,9 +54,7 @@ class ProductView(APIView):
authentication_classes = [] authentication_classes = []
def get(self, request, pk): def get(self, request, pk):
product = get_object_or_404(ProductModel, id=pk) product = get_object_or_404(ProductModel, id=pk)
dollor_object, _ = DollorModel.objects.get_or_create(unique_filed='unique') product_ser = self.serializer_class(instance=product, many=False, context={'request': request, 'view_type': 'instance'})
dollor_price = dollor_object.price
product_ser = self.serializer_class(instance=product, many=False, context={'dollor_price': dollor_price, 'request': request, 'view_type': 'instance'})
return Response(product_ser.data, status=status.HTTP_200_OK) return Response(product_ser.data, status=status.HTTP_200_OK)
@@ -171,13 +169,13 @@ class AllProductsView(APIView):
products = products.filter(Q(name__icontains=search_query) | Q(description__icontains=search_query)) products = products.filter(Q(name__icontains=search_query) | Q(description__icontains=search_query))
# # Price filters # # Price filters
# price_gte = request.query_params.get('price_gte', None) price_gte = request.query_params.get('price_gte', None)
# price_lte = request.query_params.get('price_lte', None) price_lte = request.query_params.get('price_lte', None)
# if price_gte: if price_gte:
# products = products.filter(variants__min_price__gte=price_gte) products = products.filter(variants__price__gte=price_gte)
# if price_lte: if price_lte:
# products = products.filter(variants__min_price__lte=price_lte) products = products.filter(variants__price__lte=price_lte)
# Sorting # Sorting
sort_by = request.query_params.get('sort', None) sort_by = request.query_params.get('sort', None)
@@ -189,9 +187,7 @@ class AllProductsView(APIView):
# Pagination # Pagination
paginator = self.pagination_class() paginator = self.pagination_class()
paginated_products = paginator.paginate_queryset(products, request) paginated_products = paginator.paginate_queryset(products, request)
dollor_object, _ = DollorModel.objects.get_or_create(unique_filed='unique') serializer = self.serializer_class(paginated_products, many=True, context={'request': request, 'view_type': 'list'})
dollor_price = dollor_object.price
serializer = self.serializer_class(paginated_products, many=True, context={'dollor_price': dollor_price, 'request': request, 'view_type': 'list'})
return paginator.get_paginated_response(serializer.data) return paginator.get_paginated_response(serializer.data)
except MainCategoryModel.DoesNotExist: except MainCategoryModel.DoesNotExist: