Django Rest Framework:使用ModelViewSet通过PK获取实例列表

时间:2015-07-17 14:28:29

标签: python django django-rest-framework

DRF提供了一个名为Model.views超级有用的类来创建一个带有基本REST动作和映射Django模型的API,使用以下几行代码:

class MyObjectsViewSet(viewsets.ModelViewSet):
    """
    A simple ViewSet for viewing and editing instances.
    """
    queryset = MyObjects.all()
    serializer_class = MyObjectsSerializer

如果我得到http://myUrl/{pk}/,我获取有关pk标识的MyObjects实例的数据。

有没有办法要求API返回更多实例的列表,以某种方式传递他们的pk s 列表?

1 个答案:

答案 0 :(得分:4)

根据:

http://www.django-rest-framework.org/api-guide/filtering/

您可以执行以下操作:

class MyObjectsViewSet(viewsets.ModelViewSet):
    """
    A simple ViewSet for viewing and editing instances.
    """
    serializer_class = MyObjectsSerializer

    def get_queryset(self):
        queryset = MyModel.objects.all()
        pks = self.request.query_params.get('pks', None)

        if pks is not None:
            queryset = queryset.filter(pks__in=pks)

        return queryset