serializers.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # coding=utf-8
  2. import datetime
  3. from rest_framework import serializers
  4. from .models import *
  5. from django.conf import settings
  6. from utils.booleancharfield import BooleanCharField
  7. class ProductSerializer(serializers.ModelSerializer):
  8. enable = BooleanCharField()
  9. create_user_text = serializers.CharField(source='create_user.username', read_only=True)
  10. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  11. read_only=True)
  12. main_image_url = serializers.CharField(source='main_image.picture', read_only=True)
  13. detail_image = serializers.SerializerMethodField()
  14. def get_detail_image(self, obj):
  15. count = ProductImages.objects.filter(product=obj).count()
  16. return count
  17. class Meta:
  18. model = Product
  19. fields = '__all__'
  20. def create(self, validated_data):
  21. validated_data['create_user'] = self.context['request'].user
  22. instance = super(ProductSerializer, self).create(validated_data)
  23. instance.save()
  24. return instance
  25. def update(self, instance, validated_data):
  26. instance = super(ProductSerializer, self).update(instance, validated_data)
  27. instance.save()
  28. return instance
  29. class OrderListSerializer(serializers.ModelSerializer):
  30. seller_text = serializers.CharField(source='seller.name', read_only=True)
  31. create_user_text = serializers.CharField(source='create_user.name', read_only=True)
  32. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  33. read_only=True)
  34. status_text = serializers.CharField(source='get_status_display', read_only=True)
  35. sex_text = serializers.CharField(source='get_sex_display', read_only=True)
  36. package_text = serializers.CharField(source='package__name', read_only=True)
  37. class Meta:
  38. model = Order
  39. fields = ('name','tel','sex_text','inumber','package_text','status_text','create_time_f','create_user_text',)
  40. class OrderSerializer(serializers.ModelSerializer):
  41. create_user_text = serializers.CharField(source='create_user.username', read_only=True)
  42. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  43. read_only=True)
  44. status_text = serializers.CharField(source='get_status_display', read_only=True)
  45. category_text = serializers.CharField(source='get_category_display', read_only=True)
  46. class Meta:
  47. model = Order
  48. fields = '__all__'
  49. def create(self, validated_data):
  50. validated_data['create_user'] = self.context['request'].user
  51. instance = super(OrderSerializer, self).create(validated_data)
  52. instance.save()
  53. return instance