• ModelSerializer的功能


    model表


    class User(models.Model)
        """定义一个测试表User"""
        username = models.CharField(max_length=30, verbose_name='用户名')
        password = models.CharField(max_length=20, verbose_name='密码')
        password2 = models.CharField(max_length=20, verbose_name='确认密码')
        class Meta:
            db_table = 'User'

     定义序列化器


    class TestUserSerializer(serializers.ModelSerializer)
        """测试ModelSerializer的功能"""
        # 有些字段也需要序列化, 但是这些字段不在参照模型中
        # 在这里添加额外需要序列化的字段, 即不在指定参照模型中的字段, 
        # 再直白点, 就是不在表User内的字段
        mobile = serializers.CharFileld(label='手机号', min_length=11, max_length=11)  
        
        class Meta:
            # 指明参照模型
            model = User
            # 指明字段, 即要序列化的字段
            fields = '__all__'  # 所有表User中字段
            fields = ['username', 'password', 'mobile'] # 指定字段 新添加的也可以指定
            exclude = ['password2']  # 排除掉的字段  不能和fields一起用
            read_only_fields = ('username', 'password')  # 标明只读字段 
            
            # 添加或修改原有字段的选项残数据
            extra_kwargs = {
                'username': {
                    'min_length': 5,
                    'max_length': 20,
                    'error_messages': {
                        'min_length': '仅允许5-20个字段的用户',
                        'max_length': '仅允许5-20个字段的用户',
                    }
                },
                'password': {
                    'write_only': True,
                    'min_length': 8,
                    'max_length': 20,
                    'error_messages': {
                        'min_length': '仅允许8-20个字段的密码',
                        'max_length': '仅允许8-20个字段的密码',
                    }
                }
            }
    """
    灵活使用模型类和模型类序列化
    可以添加字段(直接添加)
    减少字段(fields)
    修改字段(extra_kwargs)
    """

     

  • 相关阅读:
    demo16-打印名字
    demo15-获取标签里面的值
    bufferedReader 读取文件第一行第一个字符丢失问题
    Python的逻辑控制true/false和循环
    python中的对文件的读写
    Python初学习:简单的练习题
    VMware安装的Linux系统忘记密码 怎么修改root密码
    ZooKeeper伪分布式集群安装及使用
    Jersey实现跨服务器上传图片:UniformInterfaceException:403 Forbidden
    Spring中的一些面试题
  • 原文地址:https://www.cnblogs.com/pythonqwertytre/p/13746720.html
Copyright © 2020-2023  润新知