1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- # coding=utf-8
- from django.contrib.auth import get_user_model
- from rest_framework import serializers
- from utils.exceptions import CustomError
- from apps.log.models import BizLog
- from apps.vehicle.models import Vehicle
- from apps.xgjsms.models import XGJVCode
- User = get_user_model()
- class VehicleSerializer(serializers.ModelSerializer):
- class Meta:
- model = Vehicle
- fields = '__all__'
- def validate(self, attrs):
- attrs['user'] = self.context['request'].user
- if 'tel' in attrs:
- if attrs['user'].tel != attrs['tel']:
- vcode = self.context['request'].data.get('vcode')
- if not vcode:
- raise CustomError(u'验证码不能为空!')
- XGJVCode.verify(attrs['tel'], vcode)
- return attrs
- def create(self, validated_data):
- vehicle = Vehicle.objects.filter(user=validated_data['user']).count()
- if vehicle:
- raise CustomError(u'您已有绑定设备!')
- instance = super(VehicleSerializer, self).create(validated_data)
- return instance
- def update(self, instance, validated_data):
- if instance.user != validated_data['user']:
- raise CustomError(u'禁止操作他人设备!')
- instance = super(VehicleSerializer, self).update(instance, validated_data)
- return instance
|