serializers.py 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #coding=utf-8
  2. from rest_framework import serializers
  3. from apps.exceptions import CustomError
  4. from django.db.models import Q
  5. from apps.foundation.models import BizLog
  6. from .models import *
  7. from apps.serializer_errors import dump_serializer_errors
  8. from apps.foundation.models import BizLog
  9. from apps.customer.models import Customer
  10. from apps.account.models import Branch
  11. class BranchSerializer(serializers.ModelSerializer):
  12. enabled_text = serializers.SerializerMethodField()
  13. class Meta:
  14. model = Branch
  15. fields = '__all__'
  16. def get_enabled_text(self, obj):
  17. if obj.enabled:
  18. return u'是'
  19. return u'否'
  20. @staticmethod
  21. def factory(user, data, id=None):
  22. if id:
  23. instance = Branch.getById(id)
  24. else:
  25. instance = None
  26. serializer = BranchSerializer(instance, data=data)
  27. serializer.user = user
  28. return serializer
  29. def validSave(self):
  30. if self.is_valid():
  31. return self.save()
  32. else:
  33. raise CustomError(dump_serializer_errors(self))
  34. def create(self, validated_data):
  35. instance = super(BranchSerializer, self).create(validated_data)
  36. instance.save()
  37. BizLog.objects.addnew(self.user, BizLog.INSERT, u"添加门店[%s],id=%s" % (instance.name, instance.id),validated_data)
  38. return instance
  39. def update(self, instance, validated_data):
  40. BizLog.objects.addnew(self.user, BizLog.UPDATE, u"修改门店[%s],id=%s" % (instance.name, instance.id),validated_data)
  41. instance = super(BranchSerializer, self).update(instance, validated_data)
  42. return instance
  43. class CustomerSerializer(serializers.ModelSerializer):
  44. create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  45. class Meta:
  46. model = Customer
  47. fields = '__all__'
  48. class MemberCouponSerializer(serializers.ModelSerializer):
  49. activity_name = serializers.CharField(source='activity.title', read_only=True)
  50. coupon_name = serializers.CharField(source='coupon.name', read_only=True)
  51. write_off_text = serializers.SerializerMethodField()
  52. write_off_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  53. class Meta:
  54. model = MemberCoupon
  55. fields = '__all__'
  56. def get_write_off_text(self, obj):
  57. if obj.write_off:
  58. return u'是'
  59. return u'否'
  60. class OrderSerializer(serializers.ModelSerializer):
  61. activity_name = serializers.CharField(source='activity.title', read_only=True)
  62. member_name = serializers.CharField(source='member.name', read_only=True)
  63. member_tel = serializers.CharField(source='member.tel', read_only=True)
  64. status_text = serializers.CharField(source='get_status_display', read_only=True)
  65. delete_text = serializers.SerializerMethodField()
  66. create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
  67. class Meta:
  68. model = Order
  69. fields = '__all__'
  70. def get_delete_text(self, obj):
  71. if obj.delete:
  72. return u'是'
  73. return u'否'