使用django-rest-framework创建对象后返回id值

kah*_*hlo 7 python django post http-post django-rest-framework

我正在使用django-rest-framework通用视图通过POST请求在模型中创建对象.我想知道如何返回POST后创建的对象的id或更一般的,有关创建的对象的任何其他信息.

这是创建(并列出)对象的视图类:

class DetectorAPIList(generics.ListCreateAPIView):
    serializer_class = DetectorSerializer
    permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
    parser_classes = (MultiPartParser, FileUploadParser,)

    def pre_save(self, obj):
        obj.created_by = self.request.user.get_profile()

    def get_queryset(self):
        return (Detector.objects
                .filter(get_allowed_detectors(self.request.user))
                .order_by('-created_at'))
Run Code Online (Sandbox Code Playgroud)

模型序列化器:

class DetectorSerializer(serializers.ModelSerializer):
    class Meta:
        model = Detector
        fields = ('id', 'name', 'object_class',
              'created_by', 'public', 'average_image', 'hash_value')
        exclude = ('created_by',)
Run Code Online (Sandbox Code Playgroud)

谢谢!

Nav*_*eet 1

这里,DetectorSerializer继承自ModelSerializer,并且您的视图继承自泛型ListCreateAPIView ,因此当向视图发出POST请求时,它应该返回id以及Serializer字段中定义的所有属性。