update order list serializer add get order view and its permission
This commit is contained in:
@@ -78,21 +78,17 @@ class CartSerializer(serializers.ModelSerializer):
|
||||
return None
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def get_tax(self, obj):
|
||||
return f'{1000:,.0f} تومان'
|
||||
|
||||
def get_cart_total(self, obj):
|
||||
|
||||
return f'{10000:,.0f} تومان'
|
||||
def get_final_price(self, obj):
|
||||
|
||||
def get_final_price(self, obj):
|
||||
return f'{8000:,.0f} تومان'
|
||||
|
||||
|
||||
class OrderSerializer(serializers.ModelSerializer):
|
||||
class OrderListSerializer(serializers.ModelSerializer):
|
||||
count = serializers.SerializerMethodField()
|
||||
images = serializers.SerializerMethodField()
|
||||
order_id = serializers.SerializerMethodField()
|
||||
@@ -100,6 +96,35 @@ class OrderSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = OrderModel
|
||||
fields = ['created_at', 'status', "images", "count", "id", 'final_price', 'order_id', 'verbose_status']
|
||||
read_only_fields = ['count', 'images', 'order_id', 'verbose_status']
|
||||
def get_verbose_status(self, obj):
|
||||
return obj.get_status_display()
|
||||
|
||||
def get_count(self, obj):
|
||||
return obj.items.all().count()
|
||||
|
||||
def get_images(self, obj):
|
||||
image_list = [
|
||||
self.context.get('request').build_absolute_uri(image.image.url)
|
||||
if (image := item.product.images.all().first()) else None
|
||||
for item in obj.items.all()[:3]
|
||||
]
|
||||
return filter(lambda x: x is not None, image_list)
|
||||
def get_order_id(self, obj):
|
||||
return obj.id + 1000
|
||||
|
||||
|
||||
class OrderGetSerializer(serializers.ModelSerializer):
|
||||
count = serializers.SerializerMethodField()
|
||||
images = serializers.SerializerMethodField()
|
||||
order_id = serializers.SerializerMethodField()
|
||||
verbose_status = serializers.SerializerMethodField()
|
||||
items = OrderItemSerailzier(many=True)
|
||||
address = UserAddressSerializer()
|
||||
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']
|
||||
|
||||
def get_verbose_status(self, obj):
|
||||
return obj.get_status_display()
|
||||
|
||||
Reference in New Issue
Block a user