0008 查询主表显示子表
作者:互联网
查询出版社,并显示出该每个出版社出版的图书。
之前已经写过PublisherInfoSerializer序列化器,现在增加一个图书序列化器,图书序列化器中有出版社序列化器,使用效果不好,所以,我们同样在出版社序列化器中增加一个图书序列化器,只显示图书名和出版日期
特别要注意的是:图书和出版社的关联,是因为图书模型中的外键关联字段publisher,所以,通过图书找出版社,字段名必须设置为publisher_id,而通过出版社找图书,需要这个字段的关系字段名related_name。本例中图书中的外键publisher的关系字段related_name是book_list,故增加出版社的图书这个字段名必须是book_list。
另外,因为出版社和图书是一对多的关系,所以,需要加参数many=True
class PublisherInfoSerializer(serializers.ModelSerializer): """ 出版社序列化器 """ class BookSerializer(serializers.ModelSerializer): class Meta: model = BookInfo fields = ('book_name', 'pub_date') book_list = BookSerializer(read_only=True, many=True) class Meta: model = PublisherInfo fields = ('pub_name', 'book_list')
路由和视图,之前已配置好,不变。运行查看效果:
标签:主表,name,0008,出版社,book,子表,序列化,class,图书 来源: https://www.cnblogs.com/dorian/p/12450100.html