我将参考 django-rest-framework API 示例来解决这个问题。假设我们有两个定义如下的序列化器。
class TrackSerializer(serializers.ModelSerializer):
class Meta:
model = Track
fields = ['order', 'title', 'duration']
class AlbumSerializer(serializers.ModelSerializer):
tracks = TrackSerializer(many=True, read_only=True)
class Meta:
model = Album
fields = ['album_name', 'artist', 'tracks']
Run Code Online (Sandbox Code Playgroud)
现在,如果我执行 GET 请求并检索一个Album实例,它将返回一个响应,其中包含实例列表Track,其中每个实例包含 Track 的所有字段。有没有办法只返回模型中选定的字段子集Track?例如,仅将title和duration字段返回给客户端,而不返回 'order' 字段。
我最近经历过,在 django Rest 框架上,当 Trailing_slash=True 时,发出删除请求时会返回 http 301 状态代码,而不会在 url 中包含尾部斜杠。虽然在发布请求中缺少尾部斜杠会返回运行时错误。所以我的问题是,这是一个错误还是预期的行为?