Python 对于单个整数是否有默认的Django/Rest序列化程序?

Python 对于单个整数是否有默认的Django/Rest序列化程序?,python,django,rest,Python,Django,Rest,使用Django Rest框架,我成功地构建了返回应用程序模型的API。您可以看到模型、视图集、序列化器等 现在我想创建另一个更简单的API。此api不会返回模型对象列表。相反,它将返回一个整数。因此,视图集将如下所示: class MyObjectCount(viewsets.ViewSet): def retrieve(self,request,pk=None): queryset = 21 serializer = IntegerSerializer

使用Django Rest框架,我成功地构建了返回应用程序模型的API。您可以看到模型、视图集、序列化器等

现在我想创建另一个更简单的API。此api不会返回模型对象列表。相反,它将返回一个整数。因此,视图集将如下所示:

class MyObjectCount(viewsets.ViewSet):
    def retrieve(self,request,pk=None):
        queryset = 21
        serializer = IntegerSerializer(queryset)
        return Response(serializer.data,status=status.HTTP_200_OK)
但我不知道整数序列化程序应该是什么样子。或者,也许我不需要编写自己的IntegerSerializer,但可以为这种情况使用一些默认序列化程序。
有人能推荐最好的解决方案吗?

您只需要Django模型对象的序列化程序,因为标准每格式库不知道如何处理Django对象。”Primitive的Python本机类型是可以理解的,只需返回这些本机类型,并让Django Rest框架为您将其转换为JSON(基于内容协商)

return Response(queryset)

你把它序列化成什么?现在我根本没有序列化它。IntegerSerializer()未写入。我需要将其序列化为JSON对象。但我不知道IntegerSerializer应该是什么样子。此答案中似乎有错误。您分配了变量数据,但在下一行中从未使用它。这不起作用。当我将浏览器指向时(正如我在本文顶部指出的)我成功地获得了我的自定义对象列表。但是,当我尝试对其执行相同操作时(我已经按照上面的u建议进行了编码),响应是基于文本的页面源代码列表。这没有任何意义;视图返回一个
json.dumps()
result;任何地方都没有返回页面。Martijn,这更好:返回响应(数据,状态=状态。HTTP\u 200\u OK)。我希望你不介意我编辑了你的答案。@SaqibAli:默认状态是200 OK。显式设置应该没有什么区别。唯一的区别是我显式设置了内容类型,覆盖了内容协商。我已经更新了答案,因为我看到Django Rest已经为你编码为JSON,基于内容协商。