通过ORM从数据库获取到的 QuerySet 或 对象 均可以被序列化为 json 格式数据。

ORM表

  1. # models.py
  2. from django.db import models
  3. class Role(models.Model):
  4. """ 角色表 """
  5. title = models.CharField(verbose_name="名称", max_length=32)
  6. class Department(models.Model):
  7. """ 部门表 """
  8. title = models.CharField(verbose_name="名称", max_length=32)
  9. class UserInfo(models.Model):
  10. """ 用户表 """
  11. level_choices = ((1, "普通会员"), (2, "VIP"), (3, "SVIP"),)
  12. level = models.IntegerField(verbose_name="级别", choices=level_choices, default=1)
  13. username = models.CharField(verbose_name="用户名", max_length=32)
  14. password = models.CharField(verbose_name="密码", max_length=64)
  15. age = models.IntegerField(verbose_name="年龄", default=0)
  16. email = models.CharField(verbose_name="邮箱", max_length=64, null=True, blank=True)
  17. token = models.CharField(verbose_name="TOKEN", max_length=64, null=True, blank=True)
  18. depart = models.ForeignKey(verbose_name="部门", to="Department", on_delete=models.CASCADE, null=True, blank=True)
  19. roles = models.ManyToManyField(verbose_name="角色", to="Role")

序列化基本字段

image.png

  1. # 切记, 如果从数据库获取的不是QuerySet对象,而是单一对象,例如:
  2. data_object = modes.UserInfo.objects.filter(id=2).first()
  3. ser = UserModelSerializer(instance=data_object,many=False)
  4. print(ser.data)

序列化自定义字段

额外定义字段
image.png

序列化类的嵌套

默认显示关联表序列化类的所有字段,若要部分显示可指定关联表序列化类的fields
image.png