如何在 django 中验证 json 对象

2023-11-27

我正在使用 AJAX 向 django 视图提交 JSON。 JSON 如下所示:

{
   "code":"9910203040", // required
   "name":"Abc", // required
   "payments":[
      {
         "amount":300, // required
         "name":"efg", // required,
         "type": 2 // can be empty
      },
      {
         "amount":100,
         "name":"pqr",
         "type": 3
      }
   ]
}

付款清单可以是任意大小。我如何在 Django 中验证这一点?是否可以使用 Django Forms 来验证这一点?如果是 Spring,我会创建 Request 类并在字段上使用注释,但不知道如何在 Django 中执行此操作。


您可以使用 django Rest 框架来验证请求数据,如 @zaphod100.10 提到的,

这是您可以用来验证的序列化器 -

from rest_framework import serializers

class PaymentSerializer(serializers.Serializer):
    amount = serializers.IntegerField(required=True, min_value=0, null=True)
    name = serializers.CharField(required=True, max_length=128)
    type = serializers.IntegerField(required=True, min_value=0)

class ValidateFormSerializer(serializers.Serializer):
    code = serializers.CharField(required=True, max_length=32)
    name = serializers.CharField(required=True, max_length=128)
    payments = serializers.ListField(child=PaymentSerializer)

您需要这样在视图部分验证它 -

 import ValidateFormSerializer

# add this snippet in your view section
 valid_ser = ValidateFormSerializer(data=request.data)
 if valid_ser.is_valid():
       post_data = valid_ser.validated_data
 else:
      print(valid_ser.errors)

如果这足以解决您的问题,请告诉我。

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

如何在 django 中验证 json 对象 的相关文章

随机推荐

  • 视图未附加到窗口管理器(解决方案是什么?)

    我从我的应用程序中收到了数百个错误报告 而且所有错误报告都是相同的 这真的很烦人 因为在我的测试设备 HTC Wildfire Galaxy S I II III Galaxy Mini Galaxy Tab 10 中 这个错误从未发生过
  • x86 中“PAUSE”指令的用途是什么?

    我正在尝试创建一个自旋锁的愚蠢版本 浏览网页时 我在 x86 中发现了一条名为 PAUSE 的汇编指令 该指令用于向处理器提示自旋锁当前正在该 CPU 上运行 英特尔手册和其他可用信息指出 处理器使用此提示来避免内存顺序冲突 大多数情况下
  • Swift Playgrounds:替换 captureValue(_:withIdentifier:)

    Xcode 7 3已弃用 XCPlaygroundPage currentPage captureValue withIdentifier 它的前身 XCPCaptureValue was 已弃用在 Xcode 7 1 中 我想知道除了集合
  • 非凸优化器

    我使用 python2 7 需要找到多元标量函数的最大值 换句话说 我有这个功能 def myFun a b c d e f complex calculation that takes about 30 seconds return re
  • Python中的(1,)和(1)有什么区别[重复]

    这个问题在这里已经有答案了 正如标题所述 我发现 1 and 1 是不同的 但它们有什么区别呢 In 39 1 1 Out 39 False 试试这个来说服自己 gt gt gt type 1
  • 将 JavaScript 变量传递给 AngularJs ng-init

    我定义了以下 javascript 变量并需要传递memId值传入 AngularJs init 函数 div class mini 我收到错误 memId没有定义 您需要使用 角度 方式来完成此操作 window var app angu
  • 如何以最小的影响重新启动 CSS 动画

    有没有一种方法可以重新启动 CSS 动画 而无需克隆元素 回流 DOM 等待 setTimeout onAnimationEnd EDIT 无需 jQuery 或检查 我基本上只是在下一个绘制的帧处重新启动动画 此方法不会克隆任何元素 重排
  • 处理带有未知 IPv6 扩展标头的数据包

    Question 是否应该丢弃带有未知 IPv6 扩展标头的数据包 Details 我无法通过检查找到这个问题的答案RFC 这本书IPv6 要点第 22 页指出 如果节点需要下一个标头但无法识别下一个标头字段中的值 则需要丢弃该数据包并向数
  • 在C#中,如何可靠地杀死进程树[重复]

    这个问题在这里已经有答案了 在 C 中 我们使用以下代码来终止进程树 有时有效 有时无效 可能与 Windows 7 和 或 64 位有关 它找到给定进程的子进程的方法是调用GetProcesses获取系统中的所有进程 然后调用NtQuer
  • Airplay 按钮未显示在 AVPlayer 的播放器控件中

    我使用 AVPlayer 和 AVPlayerViewController 创建了一个视频播放器 我已经设定 allowsExternalPlayback 财产至真也 usesExternalPlaybackWhileExternalScr
  • apk (.apk) 和应用程序包 (.aab) 之间的区别

    最近谷歌推出了一个新功能app bundle这与 APK 的概念非常相似 除了灵活性和架构差异之外 我阅读了很多博客 文章来了解应用程序包与 APK 文件相比如何在设备中工作 App Bundle 的实际内部工作流程是什么 它如何在从 Go
  • 将标记替换为 html 内容

    我一直在搜索 Google Map API V3 文档 但找不到任何方法来使用我自己的 html 内容而不是图像在地图上创建自定义图标 我想显示一个动态标记 可以显示文本或我想要的任何内容 例如 div class marker Dynam
  • Java打印包含多个整数的字符串

    今天刚开始学习java 似乎无法弄清楚这一点 我正在关注 learnjavaonline org 上的教程 该教程会教您一些内容 然后要求您编写代码来执行特定操作 然后检查输出以查看其是否正确 问题是 如果它不正确 它不会说明原因 也不会为
  • Anaconda 安装后运行 pyinstaller 会导致 ImportError: no Module named 'pefile'

    I did conda install c acellera pyinstaller 3 2 3 as per Anaconda 的网站看起来它安装正确 但如果我尝试通过 cmd 运行它 我会得到以下信息 C Users Cornelis
  • 增加该值(如果存在),否则在 DynamoDB 中添加新条目

    我有一个 DynamoDB 表 其列和主键为ipAddress IP地址 visits 我从我的 React 网站获取用户的 IP 地址 并通过 Lambda 函数和 API Gateway POST 请求将其插入到 DynamoDB 如果
  • UIImages 的图像尺寸是 1024 x 1024?

    苹果文档指出 您应该避免创建大于 1024 x 的 UIImage 对象 大小为 1024 除了大量的内存之外 这样的图像还会 消耗 使用图像作为纹理时可能会遇到问题 在 OpenGL ES 中或将图像绘制到视图或图层时 这个尺寸 如果您正
  • Boost.Test 检查指针是否为空

    我有以下测试 BOOST CHECK NE pointer nullptr 编译失败的原因是 xxx include boost test tools detail print helper hpp 50 14 错误 operator 出了
  • 如果Java中的反射会减慢命令的执行速度,为什么还有这么多框架使用它?

    根据我的理解 使用 Java 反射 API 会按命令减慢代码执行速度 但后来我看到它在 Java 世界的很多地方都在使用 仅举几例 注释 Spring框架 AOP 休眠 MyBatis 这意味着我错过了一些关于 java 反射 又名优化技术
  • 使用 PostGIS 配置 Amazon Elastic Beanstalk

    有谁有使用 PostGIS 设置 Amazon Elastic Beanstalk 的经验 以便我可以利用 Geodjango 默认设置 RDS 以 MySQL 为特色 当前不支持开箱即用的许多功能 1 PostgreSQL PostGIS
  • 如何在 django 中验证 json 对象

    我正在使用 AJAX 向 django 视图提交 JSON JSON 如下所示 code 9910203040 required name Abc required payments amount 300 required name efg