我有一个重写了create方法的嵌套序列化程序:
class OrderSerializer(serializers.ModelSerializer):
data_model=Order
user = UserSerializer(many=False)
class Meta:
model = Order
fields = ['uid', 'user','price']
def create(self, validated_data):
validated_data=validated_data.pop('user')
order=self.data_model.objects.create(**validated_data)
order.user=self.context['request'].user
order.save()
return order
class LifeOrderSerializer(OrderSerializer):
data_model =LifeOrder
class Meta(OrderSerializer.Meta):
model = LifeOrder
fields = OrderSerializer.Meta.fields + [ "birth_year",
"contract_duration",]
在视图.py在
^{pr2}$但当我发送一个post请求来创建时,模型序列化程序defualt create方法会被调用!有什么问题吗?在
是ModelViewSet的CreateModelMixin在调用我自己的create函数之前引发了异常。 我完成了modelview集的创建,问题解决了!在
viewset中提到的serializer\u类是}的序列化程序。在
LifeOrderSerializer
,我认为它必须是OrderSerializer
,因为这是重写{如果
LifeOrderSerializer
是OrderSerializer
的子级,请确保您已经重写了create()
方法以使其工作。在比如:
相关问题 更多 >
编程相关推荐