Django DRF 相关命令三

一对多关系中,通常外键设置在多的表中,一的表中就没有相关字段,所以要想查询一的表中关联的多的副表,可以在建Model的时候在多的外键字段上添加related_name参数,来进行反向查询。这样在序列化.py中就可以使用“关联名”=关联表的序列化类进行序列化副表内容。

例如:

class Album(models.Model):
    album_name = models.CharField(max_length=100)
    artist = models.CharField(max_length=100)

class Track(models.Model):
    album = models.ForeignKey(Album, related_name='tracks', on_delete=models.CASCADE)
    order = models.IntegerField()
    title = models.CharField(max_length=100)
    duration = models.IntegerField()
class Meta:
        unique_together =['album','order']
        ordering =['order']
def__str__(self):
return'%d: %s'%(self.order, self.title)

AlbumSerializer

class TrackSerializer(serializers.ModelSerializer):

    class Meta:
        model = Track
        fields =['order','title','duration']

class AlbumSerializer(serializers.ModelSerializer):
    tracks = TrackSerializer(many=True)
    class Meta:
        model = Album
        fields =['album_name','artist','tracks']

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Django DRF 相关命令三》
文章链接:https://wrlog.cn/2022/05/1233/
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。