# coding=utf-8 from rest_framework import serializers from apps.WechatApplet.models import WechatApplet from .models import * class DeviceSerializer(serializers.ModelSerializer): create_user_text = serializers.CharField(source='create_user.employee.name', read_only=True) status_text = serializers.CharField(source='get_status_display', read_only=True) repaire_user_text = serializers.SerializerMethodField() def get_repaire_user_text(self, obj): if obj.status == DeviceModel.FINE: return '' from apps.tenant.repair_order.models import RepairOrder order = RepairOrder.objects.filter(device=obj, status__in=[RepairOrder.DISPATCH,RepairOrder.HANG_UP, RepairOrder.TURN_EMPLOYEE,RepairOrder.CANCEL_HANG_UP,]).first() if order: return order.repair_users.get_name() else: return '' class Meta: model = DeviceModel fields = '__all__' def create(self, validated_data): validated_data['create_user'] = self.context['request'].user validated_data['tenant'] = self.context['request'].user.employee.tenant instance = super(DeviceSerializer, self).create(validated_data) # id = instance.id # applet = WechatApplet.objects.filter(authorizer_appid=settings.WEAPP['appid']).first() # filename = applet.getDeviceCode(id, instance.tenant.company_no) # instance.wxapp_img = "{0}{1}".format(settings.MEDIA_URL,filename) # instance.save() return instance