如何获取 Django 视图集中的 API 参数?

2024-01-08

我正在构建一个公开 REST API 的 Django 应用程序,用户可以通过该 API 查询我的应用程序的模型。我正在按照说明进行操作here http://www.django-rest-framework.org/tutorial/quickstart#testing-our-api

我的路线在 mySites url.py 中如下所示:

router.register(r'myObjects', views.MyObjectsViewSet)
....
url(r'^api/', include(router.urls)),

我的序列化器看起来像这样:

class MyObjectSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = MyObject
    fields = ('id', 'name',)

我的视图集如下所示:

class MyObjectsViewSet(viewsets.ModelViewSet):
    queryset = MyObjects.objects.all()
    serializer_class = MyObjectSerializer

当我点击 API /api/myObjects/ 时,它会列出所有 myObject 模型。 当我点击 API /api/myObjects/60/ 时,它只给我 id == 60 的 myObject。 到目前为止很棒!

但是,我想更改 MyObjectsViewSet() 的逻辑,以便我可以在点击 /api/myObjects/60/ 时操作/更改它返回的内容。所以而不是做MyObjects.objects.all()我想根据 myObject ID 60 做一些更复杂的事情。但是我该怎么做呢?在此视图集中,我怎样才能获取数字 60?它不作为参数传递。但我真的很需要它!


在您的路由器中,再注册一个 url:

router.register(r'myObjects/(?P<id>\d+)', views.MyObjectsViewSet)

在你的视图集中,你可以通过以下方式获取 id:

self.kwargs['id']

Ref: http://www.django-rest-framework.org/api-guide/filtering#filtering-against-the-url http://www.django-rest-framework.org/api-guide/filtering#filtering-against-the-url

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何获取 Django 视图集中的 API 参数? 的相关文章

随机推荐

  • 具有可扩展的可滚动行的 CSS 网格

    我有一个带有单列和两行的 CSS 网格 我希望第一行在有空间时展开 在没有空间时滚动 我希望第二行保留在 div 的底部 我尝试过使用display flex 在第一排 HTML div class parent span class to
  • 如何根据预定义的顺序排列 heatmap.2() 中的列

    下面的代码 library gplots mydata lt mtcars hclustfunc lt function x hclust x method complete distfunc lt function x dist x me
  • HTML 中的“智能”溢出:有没有办法将省略号“...”放在末尾并带有链接来查看整个内容?

    我有一个 div 大小受限 我想在其中放入多行文本 但如果它会溢出 我想在末尾添加一个 并提供一个链接以在另一页上查看整个内容 这在 Javascript CSS 中可行吗 我尝试搜索一下 但我不确定要寻找什么 嗯 看起来有一个 CSSte
  • 多个 ThreadPoolTask​​Excutors Spring Java 配置

    我的应用程序需要多个任务执行器 但我不知道如何使用 Java Config 来做到这一点 XML 版本很简单 但我肯定缺少 Java 配置的某些内容 我需要两个具有不同队列和线程池大小的不同执行程序 如何使用 Java Config 来完成
  • git:“发送电子邮件”不是 git 命令。请参阅“git --help”

    我正在尝试发送补丁git send email但我收到以下错误 git send email is not a git command See git help 怎么做git send email works 相关链接 http www k
  • 我们可以将mongodb CRUD查询和聚合查询一起编写吗?

    在 MongoDB 中我们可以执行下面的书面查询吗 db dbaname find userName abc aggregate 还有其他方法可以一起执行 CRUD 和聚合查询吗 简短的回答 不 你不能这样做 find userName a
  • Foundation 6 + webpack:无法使 Foundation JS 工作

    我正在努力使用 webpack 安装 foudation js 6 我有一个 意外的令牌导入 我认为这应该与 babel 有关 但我找不到问题出在哪里 我使用基础站点 6 4 1 这是我的 webpack config js var web
  • 如何获取MSI版本?

    我正在尝试使用教程中的这段代码从 MSI 获取版本而不安装它 http www codeproject com Articles 31021 Getting version from MSI without installing it 但是
  • 使用Powershell从sql表中获取值

    我们知道我们可以使用 sql 查询窗口从数据库中获取值 例如 select from 有什么方法可以通过powershell方式获取值 我找到了数据库表本身的方法 但没有找到值的方法 Ex Set location SQLserver sq
  • 使用 Tornado 和 Pika 进行异步队列监控

    我有一个 AMQP 服务器 RabbitMQ http www rabbitmq com 我想同时发布和阅读龙卷风网络服务器 http www tornadoweb org 为此 我想我会使用异步 amqp python 库 尤其Pika
  • java中访问digitalocean水滴信息的简单程序

    我是 DigitalOcean 的新手 我想运行基本的 java 程序来访问 DigitalOcean Droplet 请让我知道一步一步的程序 您可以使用他们的官方 API 获取有关您的 Droplet 的信息 这是一个简单的 REST
  • setonitemclicklistener 不适用于 gridview

    这是我的代码代码 我没有从 gridview setOnClickListener 得到任何响应 请帮帮我 setContentView R layout myfav gView GridView findViewById R id gri
  • 如何在 Windows 8 中显示可变宽度的 Gridview 项目?

    我的 GridView 项目的大小为first item size 我该如何改变这种行为 如何显示GridView items有变量Width根据内容 我想展示第一个 但我正在展示第二个 有什么建议这样做吗 Check Windows 8
  • SWT - 表与 TableViewer

    我正在使用 SWT 创建一个新项目 我的项目中将有 3 或 4 个不同的表 我对 SWT 相当陌生 我发现自己在问我是否应该只使用Table或者它应该是TableViewer 我想学习一些关于何时只使用Table当一个TableViewer
  • 通过 socket.io 1.0 进行现场音频

    来自socket io网站 二进制流 从 1 0 开始 可以来回发送任何 blob 图像 音频 视频 我现在想知道 这是否不能成为我最近想要实现的目标的解决方案 我实际上正在寻找一种方法 如何将实时音频流从 A 即麦克风输入 广播到连接到我
  • 使用 Sphinx 生成 PHP 代码文档? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Sphinx 是一个 Python 库 用于从一组 ReST 格式的文本文件生成漂亮的文档 不是用于全文检索的工具 我也完全了解 do
  • 在 shell 脚本中将一个文件中的 key:value 替换到另一个文件中?

    我有一个包含键值条目的 数据库文件 还有另一个文件 其中键出现在其他内容中 现在我想用我的键值文件的值替换该关键字 例子 有一个文件 keys txt 其中包含 关键字空间 url name1 https maps google com s
  • set 与 unordered_set 的最快迭代

    在我的申请中 我有以下要求 数据结构将仅使用一些值 不是键 值对 填充一次 这些值可能会重复 但我希望数据结构只存储它们一次 我将迭代上面创建的数据结构的所有元素 100 次 元素在迭代中出现的顺序并不重要 约束 1 表明我必须使用 set
  • 将电源计划更改为高性能

    如何将本地计算机上的电源计划更改为高性能 并更改选项 之后关闭显示 我想设置为从不 我找到了远程计算机的所有示例 您可以通过调用来做到这一点activate方法中的Win32 PowerPlan class powerPlan Get Wm
  • 如何获取 Django 视图集中的 API 参数?

    我正在构建一个公开 REST API 的 Django 应用程序 用户可以通过该 API 查询我的应用程序的模型 我正在按照说明进行操作here http www django rest framework org tutorial qui