Получение только одного файла из вложенного сериализатора
Это мой сериализатор django:
class ShopSerializer(serializers.ModelSerializer):
rest = RestSerializer(many=True)
class Meta:
model = RestaurantLike
fields = ('id', 'created', 'updated', 'rest')
Это обернет весь RestSerializer внутрь ShopSerializer при ответе. Как я могу получить только одно или два поля из RestSerializer вместо того, чтобы иметь все поля внутри ShopSerializer?
Получить только два поля RestSerializer вместо всего RestSerializer
Если вы хотите иметь ограниченное количество полей от RestSerializer, то вы можете просто ограничить его в полях:
class RestSerializer(serializers.ModelSerializer):
class Meta:
model = Restaurant
fields = ('id', 'name', ...)
Если вам нужно только поле, скажем, первичный ключ или Slug, то для этого можно использовать PrimaryKeyRelatedField или SlugRelatedField. Например:
class ShopSerializer(serializers.ModelSerializer):
rest = serializers.SlugRelatedField(
many=True,
read_only=True,
slug_field='name'
)
class Meta:
model = RestaurantLike
fields = ('id', 'created', 'updated', 'rest')