python - Django 休息框架 : using ModelViewSet to get a list of instances by their PKs

标签 python django django-rest-framework

DRF 提供了一个名为 Model.views super 有用类使用如下几行代码创建具有基本 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 列表?

最佳答案

根据:

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

关于python - Django 休息框架 : using ModelViewSet to get a list of instances by their PKs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31478200/

相关文章:

Django:过滤 `DecimalField` 效果不佳?

django - 响应 CreateAPIView DRF

python - Qt槽PySide : QTextEdit doesn't get focus on window creation if there is a button in the window

python - Azure Database for PostgreSQL 灵活服务器使用 Django 速度缓慢

Python 和从列表创建 2d numpy 数组

python - 在 PyCharm 中运行命令行命令

django - Heroku:我的 Django 应用程序出现应用程序错误 H14: "No Web Processes Running"

django - 带有 Django 的 AWS Copilot 从未完成部署

python - 在 Django Rest Framework 中搜索多个模型的表

django - 授予访问 token 类型authorization_code 出现错误 invalid_client