Django restframework generics.ListCreateAPIView返回类似列表的对象

Django restframework generics.ListCreateAPIView返回类似列表的对象,django,django-rest-framework,Django,Django Rest Framework,我必须这样做 class UserProfileView(generics.ListCreateAPIView): permission_classes = ( permissions.IsAuthenticated, ) serializer_class = UserProfileSerializer def list(self,request): queryset = UserProfile.objects.filter(user=r

我必须这样做

class UserProfileView(generics.ListCreateAPIView):
    permission_classes = (
    permissions.IsAuthenticated,
    )
    serializer_class = UserProfileSerializer

    def list(self,request):
        queryset = UserProfile.objects.filter(user=request.user.id)
        serializer = UserProfileSerializer(queryset, many=True)
        return Response(serializer.data)
{
    "id": 1,
    "firstname": "exp",
    "lastname": "exp",
}
我想这样,我怎么能这样做,我不知道为什么它会像对象一样返回列表,我怎么能解决这个问题

[
  {
    "id": 1,
    "firstname": "exp",
    "lastname": "exp"
  }
]

ListCreateAPIView
用于返回对象列表

像这样的表现

class UserProfileView(generics.ListCreateAPIView):
    permission_classes = (
    permissions.IsAuthenticated,
    )
    serializer_class = UserProfileSerializer

    def list(self,request):
        queryset = UserProfile.objects.filter(user=request.user.id)
        serializer = UserProfileSerializer(queryset, many=True)
        return Response(serializer.data)
{
    "id": 1,
    "firstname": "exp",
    "lastname": "exp",
}
表示您需要一个对象,而不是对象列表,这意味着您需要使用

没有
RetrieveCreateAPIView
,但您可以轻松地使用

像这样

{
    "id": 1,
    "firstname": "exp",
    "lastname": "exp",
}
更新


您需要重载
get_object
方法,默认情况下
get_object
将查找传递的url参数,并尝试从提供的查询列表中获取对象。这样做是为了使CRUDL通用。之后,从
get\u对象
返回的值用于实例化
serializer\u类
。但在您的情况下,只需在
请求中返回当前用户即可。请参阅更新的答案。如果您查找
retrieve
methodrelasiation,则可以理解所有这些信息。对于开发人员来说,了解如何读取源代码是一项基本技能。

返回的结果是一个常规模型模式,就我而言…列表是检索多个记录,检索是针对单个记录-它们有单独的方法:get_object()@Jerzyk你能给我一些示例如何做到这一点吗!!!!!!