serializers.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. # coding=utf-8
  2. import json
  3. from rest_framework import serializers
  4. from .models import Equipment
  5. from utils.exceptions import CustomError
  6. from apps.account.models import User
  7. class EquipmentSerializer(serializers.ModelSerializer):
  8. type_text = serializers.CharField(source='type.name', read_only=True)
  9. supplier_text = serializers.CharField(source='supplier.name', read_only=True)
  10. location_text = serializers.SerializerMethodField()
  11. def get_location_text(self, obj):
  12. return obj.location.get_full_name()
  13. class Meta:
  14. model = Equipment
  15. fields = '__all__'
  16. def create(self, validated_data):
  17. validated_data['location_id'] = self.context['request'].data['location']
  18. validated_data['type_id'] = self.context['request'].data['type']
  19. validated_data['supplier_id'] = self.context['request'].data['supplier']
  20. instance = super(EquipmentSerializer, self).create(validated_data)
  21. return instance
  22. def update(self,instance, validated_data):
  23. validated_data['location_id'] = self.context['request'].data['location']
  24. validated_data['type_id'] = self.context['request'].data['type']
  25. validated_data['supplier_id'] = self.context['request'].data['supplier']
  26. instance = super(EquipmentSerializer, self).update(instance, validated_data)
  27. return instance