DRF不支持
create嵌套序列化器的方法。如果要以扩展布局显示相关字段,而不仅是pks,还可以覆盖该
to_representation方法,而不必重写默认
mtm字段。您还应该重写
create方法,因为
mtm链接中有第三个模型:
class EquipmentSerializer(serializers.ModelSerializer): class meta: model = Equipment fields = '__all__' def create(self, validated_data): order = Order.objects.get(pk=validated_data.pop('event')) instance = Equipment.objects.create(**validated_data) Assignment.objects.create(Order=order, Equipment=instance) return instance def to_representation(self, instance): representation = super(EquipmentSerializer, self).to_representation(instance) representation['assigment'] = AssignmentSerializer(instance.assigment_set.all(), many=True).data return representation现在,它将保存正确传递pk列表的mtm字段,例如
[1, 2,3]和用于表示该mtm相关模型的,
EquipmentSerializer将使用
AssignmentSerializer。



