123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- # coding=utf-8
- import datetime
- from rest_framework import serializers
- from .models import *
- from django.conf import settings
- from utils.booleancharfield import BooleanCharField
- class ProductSerializer(serializers.ModelSerializer):
- enable = BooleanCharField()
- create_user_text = serializers.CharField(source='create_user.username', read_only=True)
- create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
- read_only=True)
- main_image_url = serializers.CharField(source='main_image.picture', read_only=True)
- detail_image = serializers.SerializerMethodField()
- def get_detail_image(self, obj):
- count = ProductImages.objects.filter(product=obj).count()
- return count
- class Meta:
- model = Product
- fields = '__all__'
- def create(self, validated_data):
- validated_data['create_user'] = self.context['request'].user
- instance = super(ProductSerializer, self).create(validated_data)
- instance.save()
- return instance
- def update(self, instance, validated_data):
- instance = super(ProductSerializer, self).update(instance, validated_data)
- instance.save()
- return instance
- class ProductListSerializer(serializers.ModelSerializer):
- mail_image = serializers.SerializerMethodField()
- details_image = serializers.SerializerMethodField()
- def get_mail_image(self, obj):
- return '%s%s' % (settings.SERVER_DOMAIN, obj.main_image.picture)
- def get_details_image(self, obj):
- data = []
- images = ProductImages.objects.filter(product=obj)
- for image in images:
- data.append('%s%s' % (settings.SERVER_DOMAIN, image.image.picture))
- return data
- class Meta:
- model = Product
- fields = ('id','name','month','mail_image','details_image',)
- class OrderListSerializer(serializers.ModelSerializer):
- seller_text = serializers.CharField(source='seller.name', read_only=True)
- create_user_text = serializers.CharField(source='create_user.name', read_only=True)
- create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
- read_only=True)
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- sex_text = serializers.CharField(source='get_sex_display', read_only=True)
- package_text = serializers.CharField(source='package__name', read_only=True)
- class Meta:
- model = Order
- fields = ('name','tel','sex_text','inumber','package_text','status_text','create_time_f','create_user_text','seller_text',)
- class OrderSerializer(serializers.ModelSerializer):
- create_user_text = serializers.CharField(source='create_user.username', read_only=True)
- create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
- read_only=True)
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- category_text = serializers.CharField(source='get_category_display', read_only=True)
- class Meta:
- model = Order
- fields = '__all__'
- def create(self, validated_data):
- validated_data['create_user'] = self.context['request'].user
- instance = super(OrderSerializer, self).create(validated_data)
- instance.save()
- return instance
|