serializers.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # coding=utf-8
  2. from rest_framework import serializers
  3. from .models import Option, Config, BizLog
  4. from apps.account import tenant_log
  5. class OptionSerializer(serializers.ModelSerializer):
  6. type_name = serializers.CharField(source='get_type_display', read_only=True)
  7. enable_text = serializers.SerializerMethodField()
  8. def get_enable_text(self, obj):
  9. if obj.enable:
  10. return u'是'
  11. return u'否'
  12. class Meta:
  13. model = Option
  14. fields = '__all__'
  15. def create(self, validated_data):
  16. instance = super(OptionSerializer, self).create(validated_data)
  17. return instance
  18. def update(self, instance, validated_data):
  19. instance = super(OptionSerializer, self).update(instance, validated_data)
  20. return instance
  21. class ConfigSerializer(serializers.ModelSerializer):
  22. class Meta:
  23. model = Config
  24. fields = '__all__'
  25. def create(self, validated_data):
  26. tenant = self.context['request'].user.employee.tenant
  27. data = self.context['request'].data
  28. for item in data:
  29. if not item['value'] or item['value'].strip() == '':
  30. continue
  31. config = Config.objects.filter(property=item['key'], tenant=tenant).first()
  32. if config:
  33. config.value = item['value']
  34. config.save()
  35. else:
  36. Config.objects.create(property=item['key'], value=item['value'], tenant=tenant)
  37. tenant_log(self.context['request'].user, BizLog.INSERT, u'修改系统配置', data)