serializers.py 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  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_text = BooleanCharField(source='enable')
  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 ProductListSerializer(serializers.ModelSerializer):
  30. mail_image = serializers.SerializerMethodField()
  31. details_image = serializers.SerializerMethodField()
  32. def get_mail_image(self, obj):
  33. return '%s%s' % (settings.SERVER_DOMAIN, obj.main_image.picture)
  34. def get_details_image(self, obj):
  35. data = []
  36. images = ProductImages.objects.filter(product=obj)
  37. for image in images:
  38. data.append('%s%s' % (settings.SERVER_DOMAIN, image.image.picture))
  39. return data
  40. class Meta:
  41. model = Product
  42. fields = ('id','name','month','mail_image','details_image',)
  43. class OrderListSerializer(serializers.ModelSerializer):
  44. seller_text = serializers.CharField(source='seller.name', read_only=True)
  45. create_user_text = serializers.CharField(source='create_user.name', read_only=True)
  46. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  47. read_only=True)
  48. status_text = serializers.CharField(source='get_status_display', read_only=True)
  49. sex_text = serializers.CharField(source='get_sex_display', read_only=True)
  50. laompany_text = serializers.CharField(source='laompany.name', read_only=True)
  51. class Meta:
  52. model = Order
  53. fields = ('id','name','tel','sex_text','inumber','laompany_text','status_text','status','create_time_f',
  54. 'create_user_text','seller_text','cancel_reason',)
  55. class OrderSerializer(serializers.ModelSerializer):
  56. create_user_text = serializers.CharField(source='create_user.name', read_only=True)
  57. laompany_text = serializers.CharField(source='laompany.name', label='产品名称', read_only=True)
  58. create_time_f = serializers.DateTimeField(source='create_time', format=settings.SHORT_DATETIME_FORMAT,
  59. read_only=True)
  60. status_text = serializers.CharField(source='get_status_display', read_only=True)
  61. category_text = serializers.CharField(source='get_category_display', read_only=True)
  62. sex_text = serializers.CharField(source='get_sex_display', label='性别', read_only=True)
  63. rpr_text = serializers.CharField(source='get_rpr_display', label='户口', read_only=True)
  64. nationality_text = serializers.CharField(source='get_nationality_display', label='国籍/地区', read_only=True)
  65. ntype_text = serializers.CharField(source='get_ntype_display', label='身份证件类型', read_only=True)
  66. elevel_text = serializers.CharField(source='get_elevel_display', label='教育程度', read_only=True)
  67. hptype_text = serializers.CharField(source='get_hptype_display', label='现居住房产类型', read_only=True)
  68. maddress_text = serializers.CharField(source='get_maddress_display', label='邮寄地址', read_only=True)
  69. itype_text = serializers.CharField(source='get_itype_display', label='行业类型', read_only=True)
  70. otype_text = serializers.CharField(source='get_otype_display', label='职业类型', read_only=True)
  71. relation_text = serializers.CharField(source='get_relation_display', label='与借款人关系', read_only=True)
  72. tsrelation_text = serializers.CharField(source='get_tsrelation_display', label='与借款人关系', read_only=True)
  73. tsitype_text = serializers.CharField(source='get_tsitype_display', label='身份证件类型', read_only=True)
  74. tsmaddress_text = serializers.CharField(source='get_tsmaddress_display', label='共借人邮寄地址', read_only=True)
  75. mstatus_text = serializers.CharField(source='get_mstatus_display', label='婚姻状况', read_only=True)
  76. wbst_text = BooleanCharField(source='wbst', label='是否挂靠', read_only=True)
  77. thesame_text = BooleanCharField(source='thesame', label='是否有共同借款人', read_only=True)
  78. seller_tel = serializers.CharField(source='seller.username', read_only=True)
  79. class Meta:
  80. model = Order
  81. fields = '__all__'
  82. def create(self, validated_data):
  83. validated_data['create_user'] = self.context['request'].user
  84. instance = super(OrderSerializer, self).create(validated_data)
  85. instance.save()
  86. return instance