models.py

    1. class Book(models.Model):
    2. bid = models.AutoField(primary_key=True)
    3. name = models.CharField(max_length=32)
    4. price = models.DecimalField(max_digits=5, decimal_places=2)
    5. publish = models.ForeignKey(to='Publish', on_delete=models.CASCADE)
    6. authors = models.ManyToManyField(to='Author')
    7. def __str__(self):
    8. return self.name

    ModelSerializer序列化器

    1. class BookSerializer(serializers.ModelSerializer):
    2. class Meta:
    3. model = models.Book # 此处设置ModelSerializer所关联的表
    4. # 此处有俩种设置方法
    5. fields = '__all__' #方法1使用__all__会自动匹配models中的所有字段
    6. fields = ['bid', 'name', 'price', 'publish', 'authors', 'publish_read', 'authors_read'] #方法2使用列表的形式将需要对应的字段填入
    7. extra_kwargs = {
    8. 'bid': {'read_only':True},
    9. 'publish': {'write_only': True},
    10. 'authors': {'write_only': True},
    11. } # 对自动对应的字段进行Serializer进行参数设置,此时的Serializer字段名与models中一致