Я использую Django 3.0, и у меня есть сериализатор, использующий django-rest-framework
. Скажем, например, у меня есть Forum
объект. Каждый forum
имеет owner
, который является пользователем.
В моей GET /forums/
конечной точке я бы хотел иметь owner_id
. Однако в моей GET /forums/<forum_id>/
конечной точке я хотел бы вернуть весь внедренный объект.
Есть ли способ, чтобы один сериализатор поддерживал оба этих сценария ios? Если нет, я бы не хотел делать два сериализатора только для поддержки этого.
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']