文章目录
序列化组件
使用drf的序列化组件:
- 1 新建一个序列化类继承Serializer
- 2 在类中写要序列化的字段
在视图中使用序列化的类:
- 1 实例化序列化的类产生对象,在产生对象的时候,传入需要序列化的对象(queryset)
- 2 对象.data
- 3 return Response(对象.data)
高级用法:
- source:可以指定字段(name publish.name),可以指定方法。
- SerializerMethodField搭配方法使用(get_字段名字)
- read_only:反序列化时,不传
- write_only:序列化时,不显示
序列化
首先创建表models部分:
class Book(models.Model):
nid = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
cfn = models.IntegerField(choices=((0,'文学类'),(1,'情感类')),default=0)
price = models.DecimalField(max_digits=5, decimal_places=2)
publish_date = models.DateField(auto_now_add=True)
publish = models.ForeignKey(to='Publish',to_field='nid',on_delete=models.CASCADE)
authors = models.ManyToManyField(to='Author')
def __str__(self):
return self.name
class Author(models.Model):
nid = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
age = models.IntegerField()
class Publish(models.Model):
nid = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
city = models.CharField(max_length=32)
email = models.EmailField()
Serializer不指定表模型
自定义 myserializers