【发布时间】:2018-04-13 13:29:42
【问题描述】:
以序列化器from the DRF docs为例:
class AlbumSerializer(serializers.ModelSerializer):
tracks = serializers.HyperlinkedRelatedField(
many=True,
read_only=True,
view_name='track-detail'
)
class Meta:
model = Album
fields = ('album_name', 'artist', 'tracks')
当 DRF 执行查询以获取特定 album 的所有 tracks 时,生成的 SQL 会选择每个 track 的列中的所有。我将如何将其限制为仅请求特定列,例如pk 将用于响应中每个轨道的超链接?
(为什么?因为可能返回了 lot 的曲目,并且每个曲目在数据库中的行中都有 lot 的数据,这可能是很多返回不必要的数据。)
【问题讨论】:
-
尝试使用 SerializerMethodField django-rest-framework.org/api-guide/fields/… ?因此,您可以管理查询集并按照您的意愿构建它。
标签: django django-rest-framework