代わりにオーバーライドされたメソッドのデフォルトのシリアライザのメソッドを作成して呼び出し、私は、オーバーライドして、ネストされたシリアライザを持っている方法で作成します。Djangoの残りのビューセットが
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",]
とviews.py
class OrderViewSet(viewsets.ModelViewSet):
queryset_model = LifeOrder
serializer_class = LifeOrderSerializer
def get_queryset(self):
self.queryset_model.objects.all()
中を私は送るとき作成するポストリクエスト、モデラーシリアライザのデュアルメソッド作成メソッドが呼び出されます!何が問題ですか?
デフォルトのcreate()が呼び出されたことをどのように確認しましたか? – rajkris
デバッグモードでブレークポイントを確認することによって、 –