# 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 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',) 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