def post(self, request, *args, **kwargs): data = QueryDict(request.body).dict() password = data.get('password') #对password加密 cry_password = prpcrypt.encrypt(password) data['password'] = cry_password #写入数据库 self.model.objects.create(**data) return JsonResponse({'status': 0})
def put(self, request, *args, **kwargs): #密码的修改逻辑:如果密码没变化就直接保存,有变化就加密后保存 data = QueryDict(request.body).dict() pk = kwargs.get('pk') obj = self.model.objects.get(pk=pk) password = data.get('password') if obj.password != password: data['password'] = prpcrypt.encrypt(password) self.model.objects.filter(pk=pk).update(**data) return JsonResponse({'status': 0})
def update(self, instance, validated_data): password = validated_data.get(self.parameter) if password != instance.password: validated_data[self.parameter] = prpcrypt.encrypt(password) return super(SetEncryptMixins, self).update(instance, validated_data)
def create(self, validated_data): password = validated_data.get(self.parameter) validated_data[self.parameter] = prpcrypt.encrypt(password) return super(SetEncryptMixins, self).create(validated_data)