【问题标题】:Django Rest Framework: using ModelViewSet to get a list of instances by their PKsDjango Rest Framework:使用 ModelViewSet 通过 PK 获取实例列表
【发布时间】:2015-07-17 14:28:28
【问题描述】:

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 返回更多实例的列表,以某种方式传递它们的 pks 列表?

【问题讨论】:

  • 声明在正文中获取的对象是否重要,还是需要在 URL 中完成?

标签: python django django-rest-framework


【解决方案1】:

根据:

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

【讨论】:

    猜你喜欢
    • 2019-12-23
    • 2014-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多