serializers.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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