【问题标题】:DRF - How to get created object in CreateAPIViewDRF - 如何在 CreateAPIView 中获取创建的对象
【发布时间】:2023-03-05 07:21:01
【问题描述】:

我的目标非常类似于this question 中提出的问题,但从 DRF 的角度来看,而不是从形式上。

所以基本上问题是,我怎样才能在下面的代码sn-p中获取新创建的对象:

TestSerializer(serializers.ModelSerializer)
    class Meta:
        fields = '__all__'
        model = TestModel


class TestView(generics.CreateAPIView):
    serializer_class = TestSerializer

    def create(self, request, *args, **kwargs):
        response = super(TestView, self).create(request, *args, **kwargs)
        created_model_instance = .... ?
        print(created_model_instance.id)
        return response

【问题讨论】:

    标签: django-rest-framework django-generic-views


    【解决方案1】:

    您可以覆盖perform_create 并使用serializer.save 来获取创建的对象,例如:

    class TestView(generics.CreateAPIView):
        serializer_class = TestSerializer
    
        def perform_create(self, serializer):
            """Some doc here!"""
            obj = serializer.save()
            print(obj.id)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-10
      • 1970-01-01
      • 2019-08-14
      • 2016-10-18
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      相关资源
      最近更新 更多