product refactor bullshit
This commit is contained in:
@@ -19,10 +19,32 @@ class ProductDetailSerializer(serializers.ModelSerializer):
|
||||
exclude = ('product',)
|
||||
|
||||
|
||||
class AttributeTypeSerialzier(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = AttributeType
|
||||
fields = "__all__"
|
||||
|
||||
class AttributeValueSerialzier(serializers.ModelSerializer):
|
||||
attribute_type = AttributeTypeSerialzier()
|
||||
class Meta:
|
||||
model = AttributeValue
|
||||
fields = "__all__"
|
||||
|
||||
class ProductVariantSerialzier(serializers.ModelSerializer):
|
||||
attributes = AttributeValueSerialzier(many=True)
|
||||
price = serializers.SerializerMethodField()
|
||||
class Meta:
|
||||
model = ProductVariant
|
||||
fields = "__all__"
|
||||
|
||||
def get_price(self, obj):
|
||||
dollor_price = self.context.get('dollor_price')
|
||||
toman_price = obj.get_toman_price(dollor_price=dollor_price)
|
||||
return "{:,.0f} تومان".format(toman_price)
|
||||
|
||||
|
||||
class DynamicProductSerializer(serializers.ModelSerializer):
|
||||
|
||||
price = serializers.SerializerMethodField()
|
||||
variants = ProductVariantSerialzier(many=True)
|
||||
is_new = serializers.SerializerMethodField()
|
||||
related_products = serializers.SerializerMethodField()
|
||||
details = ProductDetailSerializer(many=True, read_only=True)
|
||||
@@ -42,15 +64,11 @@ class DynamicProductSerializer(serializers.ModelSerializer):
|
||||
model = ProductModel
|
||||
fields = "__all__"
|
||||
view_type = {
|
||||
'list': ['name', 'price', 'image1', 'video', 'rating', 'discount', 'slug', 'category', ],
|
||||
'instance': ['name', 'description', 'price', 'image1', 'image2', 'image3', 'video', 'rating', 'discount', 'slug', 'meta_description', 'meta_keywords', 'meta_rating', 'category', 'related_products', 'details', 'in_pack_items'],
|
||||
'chat': ['name', 'description', 'price', 'in_stock', 'discount', ]
|
||||
'list': ['name', 'image1', 'video', 'rating', 'slug', 'category', 'variants'],
|
||||
'instance': ['name', 'description', 'image1', 'image2', 'image3', 'video', 'rating', 'slug', 'meta_description', 'meta_keywords', 'meta_rating', 'category', 'related_products', 'details', 'in_pack_items', 'variants'],
|
||||
'chat': ['name', 'description', ]
|
||||
}
|
||||
|
||||
def get_price(self, obj):
|
||||
dollor_price = self.context.get('dollor_price')
|
||||
toman_price = obj.get_toman_price(dollor_price=dollor_price)
|
||||
return "{:,.0f} تومان".format(toman_price)
|
||||
|
||||
def get_is_new(self, obj):
|
||||
return timezone.now() < obj.created_at + timedelta(days=7)
|
||||
@@ -74,8 +92,8 @@ class DynamicProductSerializer(serializers.ModelSerializer):
|
||||
class CommentSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = CommentModel
|
||||
fields = "__all__"
|
||||
read_only_fields = ('show', 'product', 'user')
|
||||
exclude = ('review_status', )
|
||||
read_only_fields = ('review_status', 'product', 'user')
|
||||
|
||||
class SubCategorySerializer(serializers.ModelSerializer):
|
||||
product_count = serializers.SerializerMethodField()
|
||||
|
||||
Reference in New Issue
Block a user