serializers.py 3.0 KB

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