【django】06-详解模型类序列化器ModelSerializer的使用

首先定义一个表

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']  # 排除掉的字段
		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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值