django - django rest框架默认字段验证的问题
问题描述
对于这样的嵌套模型,我有以下问题:
def Post(models.Model)
name = models.CharField(unique=True)
content = models.TextField()
def Comment(models.Model)
post = models.ForeignKey(Post)
content = models.CharField()
我创建了所有字段的默认模型序列化程序。
问题:
默认模型序列化程序不适用于嵌套模型。我必须明确编写创建/更新。这已在文档中进行了解释,因此没有任何反对意见。尽管我认为选择合理的默认值可以满足 99% 的用例(对于其余的用例,行为可以自定义)。我会尝试对此进行尝试。
当我尝试使用现有 post 对象中的 json 时,序列化程序 is_valid() 失败说“对名称的唯一约束失败”。但我希望它更新而不是创建。is_valid 是否应该基于 json 中传递的 id 创建/更新。
当创建一个包含许多评论的新嵌套 json 时,is_valid() 无法说“帖子为空”。当然,我不会在 json 中包含帖子 ID,因为尚未创建帖子。所以 is_valid 变得没用了。is_valid 是否应该不依赖于 id 是否在 json 中传递?另外,如果没有 is_valid 通行证,我不能使用 data/validated_data 。
设置验证器 = [] 也不会删除字段验证。我还没有找到抑制字段验证的方法。
我浏览了源代码和文档,花了一天多的时间来设置这么简单的东西。
我一定错过了一些简单的东西,所以任何帮助表示赞赏。
解决方案
推荐阅读
- rest - Artifactory REST API:如何有效地为用户获取权限目标
- java - 下面的代码每两秒打印一次静态系统时间,但我想每两秒打印一次动态系统时间
- android - React Native VLCPlayer RTSP 延迟(安卓版)
- python - 跨多个线程使用 Pika 通道
- python - 打印一个字符串,同时记录符号 % 之后的所有组件
- css - 如何在同一个容器中将标题居中对齐,文本左对齐?
- python - 加权页面排名图表示
- c# - SignedCms.decode() 在 c# 中做了什么
- sql - 过程的实际语法
- d3.js - 具有可变 X 和 Y 的 D3 条形图(条形的可变宽度和高度)