DRF: только для целей представления. Как объединить два сериализатора
У меня есть
class Serializer1(serializers.ModelSerializer):
class Meta:
model = Model1
fields = ("first_name","last_name")
class Serializer2(serializers.ModelSerializer):
class Meta:
model = Model2
fields = ("phone","email")
Теперь я хочу показать оба сериализатора как один только в целях представления
like
{
first_name:
last_name:
phone:
email:
}
Как это сделать
Один быстрый способ сделать это - распаковать оба serializer.data
в дикту типа:
s1 = Serializer1(obj)
s2 = Serializer2(obj)
combined = {**s1.data, **s2.data}
Сначала определите второй сериализатор, а затем первый
class serializer2(serializers.ModelSerializer):
class Meta:
model = model2
fields = '__all__'
class serializer1(serializers.ModelSerializer):
s2 = serializer2()
class Meta:
model = model1
fields = '__all__'
затем создайте представление, используя сериализатор1.