Django DRF ListField 反序列化 GET 查询参数中的 id 列表

2023-12-09

尝试使用 DRF 的 ListField 选项来反序列化查询参数中的值列表(下例中的应用程序)。我很难让它发挥作用。在网上找不到示例。希望有人提供一些帮助。

api: /getAppStats/?applications=one,two,three

class MySerializer(serializers.Serializer):
 applications = serializers.ListField(child=serializers.CharField())
 start_date = serializers.DateField(default=(datetime.datetime.utcnow() - datetime.timedelta(days=30)).date().isoformat())
 end_date = serializers.DateField(default=datetime.datetime.utcnow().date().isoformat())

class SomeView(generics.GenericAPIView):
 """

 """
 permission_classes = [AllowAny]
 serializer_class = MySerializer

 def get(self, request, *args, **kwargs):

    """ 
    Just return query params..
    """
    serializer = MySerializer(data=request.query_params)

    if not serializer.is_valid():
        return Response({'stats':'invalid input data'})

    return Response({'stats':serializer.data})

我所看到的只是这个——

 {
            "stats": {
                "applications": [],
                "start_date": "2015-05-27",
                "end_date": "2015-06-26"
            }
        }

我是否以错误的方式发送输入参数?我是否错过了一些微不足道的事情?

Thanks!


为同一密钥发送多个参数的标准方法是使用相同的密钥名称两次。

你可以这样做:

/getAppStats/?applications=one&applications=two&applications=three

此外,您的服务器将以数组形式接收应用程序,即applications[]并不是applications.

class SomeView(generics.GenericAPIView):
 """

 """
 permission_classes = [AllowAny]
 serializer_class = MySerializer

 def get(self, request, *args, **kwargs):

    """ 
    Just return query params..
    """

    # get the applications list
    applications = request.query_params.getlist('applications[]')

    # create a dictionary and pass it to serializer
    my_data = {'applications': applications, ...}

    serializer = MySerializer(data=my_data)

    if not serializer.is_valid():
        return Response({'stats':'invalid input data'})

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

Django DRF ListField 反序列化 GET 查询参数中的 id 列表 的相关文章

  • 用于控制器休息服务的 Spring Junit 测试用例

    我有一个响应 REST 调用的控制器 我有针对其他公共方法的各种测试用例 我不知道如何为我的控制器编写一个 RequestMapping value api frames method RequestMethod GET public Li
  • NGinx 和 Django,提供大文件 (3gb+)

    我在提供大文件下载 上传 3GB 时遇到一些问题 由于我使用的是 Django 我猜想提供文件的问题可能来自 Django 或 NGinx 在我启用 NGinx 的网站中 我有 server client max body size 4G
  • 葡萄错误处理策略?

    我正在使用 Grape 和 Rails 创建 REST API 我已经有了基本的架构 并且正在寻找可以 清理 东西的地方 其中之一是错误处理 处理 我目前正在修复整个 API 的 root rb GRAPE API 基类 文件中的错误 我对
  • Django:设置为 30 秒后过期的 Cookie 实际上会在 30 分钟后过期?

    这是我的代码 def update session request if not request is ajax or not request method POST return HttpResponseNotAllowed POST u
  • 使 django 中的内联表单集成为必需

    我是 django 的新手 到目前为止 我使用的是 symfony PHP 框架 我的问题是这样的 我有一个模型事件和模型日期 日期有一个事件的外键 因此事件可以 或应该 有一个或多个日期 现在我想要一个表单来创建事件 并且该表单应包含一个
  • 计算 REST API 的 ETag

    我们正在构建我们使用的 REST APIETag https en wikipedia org wiki HTTP ETag有两种用途 通过允许客户端避免重新加载资源来节省带宽 对我们来说并不重要 解决并发问题 丢失更新问题 从实际角度来看
  • Alembic - sqlalchemy 初始迁移

    我在创建初始迁移时遇到问题 该迁移将自动包含我通过使用共享 Base declarative base 在 models py 中定义的表 当我输入命令时 alembic revision autogenerate alembic 创建一个
  • 将 Google 表格中的选择复制到 Google 文档中(使用 REST API?)

    我有一个 Google 表格 我使用利用 Google 的 REST API 的 python 脚本更新其内容 我想自动将该工作表的一部分复制到给定的 Google 文档中 例如 我希望该工作表的 A G 列出现在我的文档中 并在工作表出现
  • Django 嵌套查询集

    我有一个像这样的 Django 数据模型 省略数据字段 class Atom Model pass class State Model atom ForeignKey Atom class Transition Model atom For
  • 自定义 Django 组模型

    我正在尝试向 Django 管理中的 组 添加一个字段 例如 当您在后端创建一个组时 您定义 名称 和 权限 我想向其中添加一个字段列表 CharField 这是否需要一个新的应用程序 或者我可以在我的根 models py 中扩展 Gro
  • TemplateDoesNotExist 位于 /base.html

    朋友们 我尝试通过 Jaiswal Sanjeev 所著的 学习 Django Web 开发 一书中的项目示例来重复 运行服务器我得到这样的异常 TemplateDoesNotExist at base html TemplateDoesN
  • 渲染 StackedInline 字段时如何重写 str 方法?

    我有多对多关系 class GroupeCategoriesCategorie models Model groupe categories models ForeignKey GroupeCategories related name g
  • 如何在 django 模板中将整数形式的 unix 时间戳转换为人类可读的格式?

    我将日期作为整数字段存储在数据库中 并将其称为时间戳 当我在模板中显示它时 我尝试使用 timestamp date D d M Y 但是 这不会为我输出任何内容 我做错了什么吗 编辑 抱歉 拼写错误 我确实在代码中放置了 date 而不是
  • 在 django 中运行普通 sql 查询时如何获取字段名称

    在我的 django 视图之一中 我使用纯 sql 不是 orm 查询数据库并返回结果 sql select from foo bar cursor connection cursor cursor execute sql rows cur
  • Django 类视图未返回 HttpResponse 对象。它返回 None 相反

    urls py from housepost views import ListingPost url r house post ListingPost as view name post house views py from djang
  • Django 如何使表单字段可选

    在 django 中如何使表单字段可选 我的模型 class Student models Model first name models CharField max length 30 last name models CharField
  • Django 表单:时间字段验证

    我觉得我在这里遗漏了一些明显的东西 我有一个 Django 表单 其中包含时间场 http docs djangoproject com en dev ref forms fields timefield在上面 我希望能够允许像 10 30
  • 以 RESTful 方式重新排序项目

    我有一个包含以下数据的表 id position name 1 4 Fred 2 2 Wilma 3 1 Pebbles 4 5 Barney 5 3 Betty 这是一个用户可以重新排列的列表 因此是位置列 我的问题是 我怎样才能以一种平
  • 通过 ManyToManyField = Value 对 django 查询集进行排序

    如果有一些模型 例如 class Tag models Model name models CharField class Thing models Model title models CharField tags models Many
  • django admin 中内联模型的分页器

    我有这个简单的 django 模型 由一个传感器和特定传感器的值组成 每个日射强度计的值数量很多 gt 30k 是否可以以某种方式分页PyranometerValues在特定日期或一般情况下将分页器应用于管理内联视图 class Pyran

随机推荐

  • 如何使用java反射查找成员的访问修饰符

    使用java反射查找成员的访问修饰符 private final static long serialId 1L protected String title public String FirstName 我需要知道哪个变量是私有的 受保
  • 为什么集合初始化会抛出 NullReferenceException

    下面的代码抛出一个NullReferenceException internal class Foo public Collection
  • PDFBox如何从另一个pdf导入acrofield

    我在将现有的 acrofield 从 pdf 导入到另一个 pdf 时遇到问题 两个pdf很相似 我尝试导入并保存文件 代码如下 如果我从文件系统打开它 我看不到更改 但如果我使用 pdfbox 打开它 我会看到之前插入的 acrofile
  • 在 spring 中将值从控制器传递到 html

    您好 我有一个简单的网页 其中有一个按钮和按钮附近的文本 单击按钮时我需要更改文本并从代码中获取新文本 这是我需要传递响应的控制器类 GetMapping stream public String openStream Model mode
  • Dnsmasq 无故停止工作

    我开始在 OSX Yosemite 上使用 Dnsmasq 将所有 dev 域解析为 192 168 10 10 IP 地址 这是 Laravel Homestead 的默认地址 它对我有用 但在睡眠并唤醒我的 Macbook 后 它停止工
  • EditText 的实时字符计数

    我想知道在 Android 中对编辑文本框进行实时字符计数的最佳方法是什么 我在看this但我似乎无法理解它 为了描述这个问题 我有一个 EditText 我试图将字符限制为 150 个 我可以使用输入过滤器来做到这一点 但是我想在文本框正
  • 如何使用 nuget.core 获取包大小?

    我想知道是否有办法在下载之前知道包的大小 我正在使用 nuget 包来部署组件 并且了解更新的大小将是一个很好的功能 包大小在从服务器返回的响应中返回NuGet图库包源码
  • Pandas 数据框按索引选择行,按名称选择列

    有没有办法在 pandas 数据框中按索引 即整数 选择行并按列名称选择列 我尝试使用 loc 但它返回一个错误 并且我了解 iloc 仅适用于索引 这是数据框 df 的第一行 我愿意选择第一行 名为 Volume 的列并尝试使用 df l
  • 通过历史记录向后移动,跳过具有不同查询字符串的同一页面

    当我刷新页面或使用相同的 URL 重定向到同一页面时 我可以单击带有 window history back 的按钮代码并返回上一页 但是 如果查询字符串已更改 当我尝试返回时 我只会返回同一页面 示例1 page1 html gt pag
  • 如何在 emacs 中关闭 vhdl 模式?

    我现在正在学习 emacs 并尝试编写一个简单的 vhdl 程序进行测试 我可以看到 vhdl 模式可能是一个有趣的功能 但我想知道如何暂时关闭它以及稍后如何重新激活它 使用命令M x 基本模式 那是 按下 并按住 meta键 通常是Alt
  • 访问由文件夹引用添加的 Swift 变量

    事实上 我在这个简单的问题上花了大约 3 个小时 并用 google 搜索了很多 但没有办法 我的问题很简单 我想将一个目录作为 文件夹引用 添加到我的 Swift xCode 项目中 但无法访问它们 我不需要添加然后使用组引用 有什么建议
  • 如何仅由单个用户发布 Facebook 用户墙/页面状态 不为其他用户安装应用程序

    我正在一个网站上工作 如果在该网站上发布了某些内容 我需要将页面链接从该网站发布到特殊的用户墙或页面 这意味着我只需要一个用户来发布该问题 我面临的问题是访问令牌 因为我不想在网站流量前面显示 Facebook 登录页面 它不像在用户墙上共
  • 如何让Maven下载特定依赖项的源代码和javadoc?

    我需要特定的依赖项文档 一些文档和源代码 告诉 Maven 这样做的最佳方法是什么 首先 IntelliJ 应该自动为您下载源代码 尽管有时您可能需要单击 下载源代码 这实际上使用 Maven 来获取源代码和 javadoc 如果您想使用
  • 角度路线开始和路线结束事件

    我如何访问路由开始和路由结束事件 我想在路由和加载数据时显示进度栏 有人能告诉我这是如何工作的吗 如果您更喜欢使用可观察的 import Router NavigationStart from angular router construc
  • 如何从电子表格编写 Google 表单脚本以根据答案转到特定页面?

    我已经成功创建了一个 Google 表单 该表单使用从此处改编的代码从电子表格填充 https www youtube com watch v BYA4URuWw0s 现在我想让表单根据上一个问题的答案转到一个特定的问题 而不失去从电子表格
  • 引起原因:java.net.NoRouteToHostException:没有到主机的路由

    我正在尝试在 openshift 上从 eclipse 部署我的 Jersey 项目 并且在尾部文件中收到此错误Caused by java net NoRouteToHostException No route to host 以前当我有
  • 如何在php中获取会议邀请电子邮件的回复

    我正在向用户的电子邮件发送日历会议邀请 当接收者接受邀请时 它会出现在接收者日历中 但我无法得到回复 有什么方法可以获得回复并在我的网站中使用它 在这种情况下 Google 服务帐户是完美的解决方案 在这种情况下 用户不需要任何 API 详
  • 如何将 Action Listener 设置为 3 个按钮

    我正在尝试制作一个带有三个按钮的秒表 开始 暂停 和 停止 我的老师只教我们如何将动作监听器设置为两个按钮 如何为三个按钮设置动作监听器 这是到目前为止我的编码 JButton startButton new JButton Start J
  • 获取当前进程中 JavaVM* 的所有实例?

    这仅特定于 Windows JNI 是否提供返回所有实例的 APIJavaVM 调用过程 考虑以下场景 将 C dll 注入到java exe过程 现在的问题是 C dll如何定位当前的实例JavaVM 在它运行的进程内 据我所知 所有 J
  • Django DRF ListField 反序列化 GET 查询参数中的 id 列表

    尝试使用 DRF 的 ListField 选项来反序列化查询参数中的值列表 下例中的应用程序 我很难让它发挥作用 在网上找不到示例 希望有人提供一些帮助 api getAppStats applications one two three