Получение только одного файла из вложенного сериализатора

Это мой сериализатор 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')
Вернуться на верх