signal of address and some model udapte send address filed of an order

This commit is contained in:
Parsa Nazer
2025-04-18 17:29:04 +03:30
parent aa12540eb7
commit d50dc2309d
9 changed files with 177 additions and 64 deletions
+7 -3
View File
@@ -53,7 +53,7 @@ class OrderItemSerailzier(serializers.ModelSerializer):
class Meta:
model = OrderItemModel
exclude = ('order',)
read_only_fields = ('order', 'product',)
read_only_fields = ('order', 'product', 'discount_percent')
def get_product(self, obj):
return ProductVariantSerialzier(instance=obj.product, context={'request': self.context.get('request')}).data
@@ -79,9 +79,10 @@ class CartSerializer(serializers.ModelSerializer):
tax = serializers.SerializerMethodField()
final_price = serializers.SerializerMethodField()
discount_code = serializers.SerializerMethodField()
address = UserAddressSerializer()
class Meta:
model = OrderModel
fields = [ 'discount_code', 'items', 'cart_total', 'tax', 'final_price']
fields = [ 'discount_code', 'items', 'cart_total', 'tax', 'final_price', 'address']
def get_discount_code(self, obj):
@@ -109,6 +110,7 @@ class OrderListSerializer(serializers.ModelSerializer):
count = serializers.SerializerMethodField()
images = serializers.SerializerMethodField()
verbose_status = serializers.SerializerMethodField()
order_id = serializers.SerializerMethodField()
class Meta:
model = OrderModel
fields = ['created_at', 'status', "images", "count", "id", 'final_price', 'order_id', 'verbose_status']
@@ -119,6 +121,8 @@ class OrderListSerializer(serializers.ModelSerializer):
def get_count(self, obj):
return obj.items.all().count()
def get_order_id(self, obj):
return obj.pk + 1000
def get_images(self, obj):
image_list = [
self.context.get('request').build_absolute_uri(image.image.url)
@@ -138,7 +142,7 @@ class OrderGetSerializer(serializers.ModelSerializer):
discount_code = DiscountCodeSerializer()
class Meta:
model = OrderModel
fields = ['created_at', 'status', "images", "count", "id", 'final_price', 'order_id', 'verbose_status', 'address', 'items', 'tax' , 'cart_total', 'discount_code', 'discount']
fields = ['created_at', 'status', "images", "count", "id", 'final_price', 'order_id', 'verbose_status', 'address', 'items', 'tax' , 'cart_total', 'discount_code', 'discount_amount']
def get_verbose_status(self, obj):
return obj.get_status_display()