zoukankan      html  css  js  c++  java
  • 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)
    """

     

  • 相关阅读:
    Linux 模块管理
    python 调试方法
    LFS(Linux From Scratch)学习
    Vim完全教程
    OpenSSL基础知识
    关于jiffies回绕以及time_after,time_before
    十分简便的APK反编译(Mac 版本号 具体解释)
    亚马逊是怎样颠覆商业软件高昂价格这座”柏林墙”的
    Android自己定义控件
    Android基础新手教程——4.1.1 Activity初学乍练
  • 原文地址:https://www.cnblogs.com/pythonqwertytre/p/13746720.html
Copyright © 2011-2022 走看看