【发布时间】:2020-03-10 16:40:01
【问题描述】:
我正在使用 Django 3.0,并且我有一个使用 django-rest-framework 的序列化程序。假设例如我有一个Forum 对象。每个forum 都有一个owner,它是一个用户。
在我的GET /forums/ 端点中,我只想拥有owner_id。但是,在我的 GET /forums/<forum_id>/ 端点中,我想返回整个嵌入对象。
有没有办法让一个序列化程序同时支持这两种情况?如果没有,我不想为了支持这个而不得不制作两个序列化程序。
class ForumSerializer(serializers.ModelSerializer, compact=True):
if self.compact is False:
owner = UserSerializer(source='owner', read_only=True)
else:
owner_id = serializers.UUIDField(source='owner_id')
...
How can I achieve this compact thing?
class Meta:
fields = [...]
read_only_fields = ['owner', 'owner_id']
【问题讨论】:
标签: python django django-rest-framework