serializer.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435
  1. from rest_framework import serializers
  2. from .models import OperationHelp,OperationHelpUpfile
  3. class OperationHelpSerializer(serializers.ModelSerializer):
  4. enable_text = serializers.SerializerMethodField()
  5. create_user_name = serializers.CharField(source='create_user.employee.name', read_only=True)
  6. tenant_name = serializers.CharField(source='tenant.company_name', read_only=True)
  7. def get_enable_text(self,obj):
  8. if obj.enable:
  9. return '是'
  10. return '否'
  11. class Meta:
  12. model = OperationHelp
  13. fields = '__all__'
  14. def create(self, validated_data):
  15. user = self.context['request'].user
  16. validated_data['create_user'] = user
  17. validated_data['tenant'] = self.context['request'].user.employee.tenant
  18. instance = super(OperationHelpSerializer, self).create(validated_data)
  19. OperationHelpUpfile.objects.filter(tenant=instance.tenant,operation_help__isnull=True,).update(operation_help=instance)
  20. return instance
  21. def update(self, instance, validated_data):
  22. content = self.initial_data['content']
  23. operation_files = OperationHelpUpfile.objects.filter(operation_help=instance)
  24. for operation_file in operation_files:
  25. if not operation_file.file_path in content:
  26. operation_file.del_file()
  27. OperationHelpUpfile.objects.filter(tenant=instance.tenant, operation_help__isnull=True,).update(operation_help=instance)
  28. instance = super(OperationHelpSerializer, self).update(instance, validated_data)
  29. return instance