gpt4 book ai didi

django - 如何在 Django Rest Framework 序列化器中获取父对象

转载 作者:行者123 更新时间:2023-12-02 04:45:27 25 4
gpt4 key购买 nike

我有这个模型:

class Track(models.Model):
album = models.ForeignKey(Album)

现在在我的 TrackSerializer 中,我想获取专辑的名称。

class TrackSerializer(serializers.ModelSerializer):

class Meta:
model = Track
fields = ('album__name')

它不起作用。

我不想为此声明AlbumSerializer。有没有办法在不声明新序列化器的情况下做到这一点?

最佳答案

您可以通过在 TrackSerializer 上创建一个字段来实现此目的 has a custom source检索专辑名称。

The name of the attribute that will be used to populate the field. May be a method that only takes a self argument, such as URLField('get_absolute_url'), or may use dotted notation to traverse attributes, such as EmailField(source='user.email').

因此,在您的情况下,需要使用自定义source集添加字段album_name

class TrackSerializer(serializers.ModelSerializer):
album_name = serializers.CharField(read_only=True, source="album.name")

class Meta:
model = Track
fields = ("album_name", )

这将在输出中包含 album_name 键下的专辑名称。

关于django - 如何在 Django Rest Framework 序列化器中获取父对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27851138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com