Сериализация двух полей CharFields в один объект

У меня есть сериализатор, как показано ниже. Теперь у меня есть разделенные поля для store_photo и store_name.

class ProductSerializer(serializers.ModelSerializer):
    store_photo = serializers.CharField(source='store.photo', read_only=True)
    store_name = serializers.CharField(source='store.name', read_only=True)

    class Meta:
        model = Product
        fields = ['store_photo', 'store_name', ...]

Могу ли я как-то сериализовать их вместе в один объект? Я имею в виду что-то вроде этого:

store = {store_photo, store_name}

class Meta:
        model = Product
        fields = ['store', ...]

Вы можете попробовать SerializerMethodField

class ProductSerializer(serializers.ModelSerializer):
    calculated_store = serializers.SerializerMethodField()

    class Meta:
        model = Product
        fields = ['calculated_store', ...]

    def get_calculated_store(self, obj):
        return {obj.store.photo, obj.store.name}
Вернуться на верх