django-rest-framework - DRF - 如何在 CreateAPIView 中获取创建的对象

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

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

所以基本上问题是,如何在以下代码片段中获取新创建的对象:

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

最佳答案

您可以覆盖 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)

关于django-rest-framework - DRF - 如何在 CreateAPIView 中获取创建的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61253220/

相关文章:

Django-REST 还是 Firebase?

python - Django 休息框架。通过查询参数超链接实体

python - DRF : How to hide the password in serializers that use the depth option?

python - 从基于类的通用 View 手动获取响应

python - django - DRF 中的登录 View

python - 窗体 View : View didn't return an HttpResponse object

python - Django YearArchiveView 可以返回所有可能年份的列表吗?

django - 如何使用通用 View 在 View 中设置模型的字段?

django - 在 Django 模板中访问 RequestContext?

Django Rest 如何使用 PageNumberPagination 进行分页