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

     

  • 相关阅读:
    [Z] Windows 8/10 audio编程
    [Z]The Boost C++ Libraries
    [Z] windows进程在32、64位系统里用户和系统空间的地址范围
    [Z] 关于c++ typename的另一种用法
    [z] 人工智能和图形学、图像处理方面的各种会议的评级
    [Z] 计算机类会议期刊根据引用数排名
    关于windows的service编程
    关于Linux session管理与GUI架构
    搭建框架-ECS.ECommerce
    不调用构造函数而创建一个类型实例
  • 原文地址:https://www.cnblogs.com/pythonqwertytre/p/13746720.html
Copyright © 2011-2022 走看看