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)
    """

     

  • 相关阅读:
    判断一个大于1的数是不是一个素数
    luogu P3241 [HNOI2015]开店
    换根DP
    CF1187E Tree Painting
    luogu P3345 [ZJOI2015]幻想乡战略游戏
    费用流
    FZOJ 4112 脱单计划
    计数DP
    FZOJ 4109 青青草原的表彰大会
    状压DP
  • 原文地址:https://www.cnblogs.com/pythonqwertytre/p/13746720.html
Copyright © 2011-2022 走看看