首页 > 其他分享 >序列化器中拿到request

序列化器中拿到request

时间:2024-10-06 18:01:24浏览次数:8  
标签:serializers exists val mobile request 器中 序列化 id

image

class UpdateMobileSerializer(serializers.ModelSerializer):
    old = serializers.CharField(write_only=True, validators=[RegexValidator(r"\d{11}", message="格式错误")])
    mobile = serializers.CharField(write_only=True, validators=[RegexValidator(r"\d{11}", message="格式错误")])

    new_mobile = serializers.SerializerMethodField(read_only=True)

    class Meta:
        model = models.Company
        fields = ['old', "mobile", "new_mobile"]

    def validate_old(self, val):
        # 当前登录用的手机号是不是
        request = self.context['request']
        user_id = request.user['id']
        exists = models.Company.objects.filter(id=user_id, mobile=val).exists()
        if not exists:
            raise ValidationError("原手机号错误")
        return val

    def validate_mobile(self, val):
        # 新手机号,已存在
        exists = models.Company.objects.filter(mobile=val).exists()
        if exists:
            raise ValidationError("该手机已注册")
        return val

    def get_new_mobile(self, obj):
        return obj.mobile[0:3] + "****" + obj.mobile[-4:]

标签:serializers,exists,val,mobile,request,器中,序列化,id
From: https://www.cnblogs.com/cloud-2-jane/p/18449243

相关文章

  • 序列化对象输出
    publicclassSerializableObj{publicstaticvoidmain(String[]args){ObjectOutputStreamoos=null;try{//1.创建ObjectOutputStream输出流oos=newObjectOutputStream(newFileOutputStream("D:\\doc\\person.ba......
  • 序列化器ser.validated_data、ser.initial_data、ser.data
    1.ser.data示例:在视图中返回序列化后的数据returnResponse(serializer.data)2.ser.validated_dataifserializer.is_valid():validated_data=serializer.validated_data3.ser.initial_data原始数据4.示例:classLoginPwdSerializer(serializers.Serializer):m......
  • java 反序列化 cc6 复现
    复现环境:common-collections版本<=3.2.1,java版本随意.我们观察java高于8u71的版本会发现sun.reflect.annotation.AnnotationInvocationHandler类被进行了修改,其中的readObject不去调用setvalue方法,而是创建了一个LinkedHashMapvar7去重新进行操作,使我们之前的利用链中断.p......
  • 全网最适合入门的面向对象编程教程:55 Python字符串与序列化-字节序列类型和可变字节字
    全网最适合入门的面向对象编程教程:55Python字符串与序列化-字节序列类型和可变字节字符串摘要:在Python中,字符编码是将字符映射为字节的过程,而字节序列(bytes)则是存储这些字节的实际数据结构,字节序列和可变字节字符串的主要区别在于其可变性和用途,bytearray是可变的字节序列......
  • 解决 DedeCMS 报错“Please set ‘request_order’”的问题
    如果你使用的是虚拟主机,无法直接修改 php.ini 文件,可以通过修改DedeCMS的代码来解决这个问题。找到 common.inc.php 文件:打开织梦CMS安装目录下的 include/common.inc.php 文件。修改代码:使用文本编辑器打开 common.inc.php 文件。找到第34行:php ......
  • 织梦错误Please set ‘request_order’
    当你在使用DedeCMS并遇到错误提示“DedeCMSError:(PHP5.3andabove)Pleaseset‘request_order’inivaluetoincludeC,GandP(recommended:‘CGP’)inphp.ini,more…”时,可以通过以下两种方法来解决这个问题:方法1:修改 php.ini 文件找到 php.ini 文件:......
  • 解决 PbootCMS 后台 Ueditor 编辑器中单图片上传按钮无反应及多图片上传提示“后台配
    按照以下步骤进行修改:打开相关文件打开PbootCMS程序目录下的 core/extend/ueditor/php/controller.php 文件。修改时间区域配置将第四行的注释去掉,并将时间区域名称修改为首字母大写的形式。具体步骤打开相关文件使用文本编辑器(如Notepad++、VSCode等)打......
  • Java中序列化与反序列化的学习
    对象序列化和反序列化目录对象序列化和反序列化序列化反序列化注意事项Java对象序列化(Serialization)和反序列化(Deserialization)是Java提供的一种机制,允许你将一个对象的状态保存到一个字节序列中,并能从这个字节序列中恢复出原始对象。这种机制主要用于对象的持久化存储(如保存到......
  • C++中使用Qt实现JSON序列化与反序列化
    //File:JsonSerializer//Author:[email protected]//Creation:2024/09/29#ifndefJSON_SERIALIZER_H#defineJSON_SERIALIZER_H#include<QJsonDocument>#include<QJsonObject>#include<QJsonArray>#include<QJsonValue>#includ......
  • 237 Sending a Http Request to Store Coach Data(加入后端)
    步骤1、准备后端程序后端程序使用ASP.NETWebAPI编写,见如下源码链接中“237-CoachWebAPI”文件夹黄健华/Vue3用VS2022打开后,需要做如下操作:1)appsettings.json文件中的数据库连接字符串改成自己的(需要新建数据库);2)执行Update-DataBase命令;如下两个专栏可以帮助大家学......