我试图理解传递给serializers.ListUserSerializer()
的参数。我知道last_five
是要通过串行器返回的数据。
我无法理解的是该模型在多对多关系中的位置。通过阅读DRF文档,当模型具有多对多关系时,将传递many=True
。但是,我不明白这是如何指定一对多关系的。我看到了两种可能性。 。 。
last_five
用户查询之间一对多我也不太了解context
的论点。我认为这仅仅是对客户端的有效负载中包含的api的请求调用。
此代码的基础是here
class ExploreUsers(APIView):
def get(self, request, format=None):
# the "-date_joined" specifies descending order vs "date_joined"
last_five = models.User.objects.all().order_by('-date_joined')[:5]
# many=True provides to-many relationship from one user to many users
serializer = serializers.ListUserSerializer(
last_five, many=True, context={"request": request})
return Response(data=serializer.data, status=status.HTTP_200_OK)
答案 0 :(得分:1)
many = True
通过设置many=True
,您可以告诉DRF 您要传递的对象包含多个项目(项目列表) ,因此DRF需要使用序列化程序类对每个项目进行序列化(并且serializer.data
将是一个列表)
在这里,您正在传递queryset
,它是一个类似于list
的对象(模型类的对象列表)
context
context
是一个{(或应该是)dict
,它已传递到您的serializer
,并且您可以通过 {{1} }
示例
context data