drf中为我们提供了Serializer,他主要有两大功能:
- 对请求数据校验(底层调用Django的Form和ModelForm)
对数据库查询到的对象进行序列化
[x]
fields
校验的字段。-
extra_kwargs
用于对基本字段加额外约束。 -
validator
和validate_
两种校验字段的方式。基于Serializer
Serializer的使用不需要依赖于模型,所以可以不要编写model,直接编写serializer文件。
基于ModelSerializer
字段可保存到数据库 ```pythonmodels.py
from django.db import models
class Role(models.Model): “”” 角色表 “”” title = models.CharField(verbose_name=”名称”, max_length=32)
class Department(models.Model): “”” 部门表 “”” title = models.CharField(verbose_name=”名称”, max_length=32)
class UserInfo(models.Model): “”” 用户表 “”” level_choices = ((1, “普通会员”), (2, “VIP”), (3, “SVIP”),) level = models.IntegerField(verbose_name=”级别”, choices=level_choices, default=1)
username = models.CharField(verbose_name="用户名", max_length=32)
password = models.CharField(verbose_name="密码", max_length=64)
age = models.IntegerField(verbose_name="年龄", default=0)
email = models.CharField(verbose_name="邮箱", max_length=64)
token = models.CharField(verbose_name="TOKEN", max_length=64, null=True, blank=True)
# 外键
depart = models.ForeignKey(verbose_name="部门", to="Department", on_delete=models.CASCADE)
# 多对多
roles = models.ManyToManyField(verbose_name="角色", to="Role")
```
含外键