使用 django Rest 框架在验证步骤之前修改数据

2024-03-03

我有一个简单的Model存储创建它的用户ForeignKey。该模型有对应的ModelSerializer and ModelViewSet.

问题是当用户提交一个POST要创造一个新记录,user应该由后端设置。我尝试覆盖perform_create on the ModelViewSet设置用户,但实际上在验证步骤期间仍然失败(这是有道理的)。它回来说user字段为必填项。

我正在考虑重写user场上的ModelSerializer是可选的,但我觉得可能有一种更干净、更有效的方法来做到这一点。有任何想法吗?


我在寻找一种在控件进入验证器之前更新值的方法时遇到了这个答案。

这可能对其他人有用 - 这就是我最终在不重写整个验证器的情况下做到这一点的方法(DRF 3)。

class MyModelSerializer(serializers.ModelSerializer):
    def to_internal_value(self, data):
        data['user'] = '<Set Value Here>'

        return super(MyModelSerializer, self).to_internal_value(data)

对于那些好奇的人,我用它来将十进制值舍入到模型中定义的精度,以便验证器不会抛出错误。

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

使用 django Rest 框架在验证步骤之前修改数据 的相关文章

  • Django admin - 更改权限列表

    是否可以更改用户编辑页面中的权限列表 我不想显示所有权限 例如管理日志条目或身份验证组等 如何修改主查询集以排除其中的某些查询集 我的想法来自这个话题 https groups google com forum topic django u
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • 如何自动更新外键以具有“,on_delete = models.PROTECT”

    我正在将旧代码更新到最新的 Django 版本 外键需要 on delete models PROTECT 他们有将近一百个 如何自动添加 on delete models PROTECT 到每一个 您可以尝试在这里使用正则表达式 鉴于Fo
  • Django 管理内联以实现深层关系

    为直接关系创建内联非常容易 但是如何为更深层次的关系创建内联 假设情况是这样的 class A models Model class B models Model a models ForeignKey A class C models M
  • 如何在 django-rest-framework 查询集响应中添加注释数据?

    我正在为查询集中的每个项目生成聚合 def get queryset self from django db models import Count queryset Book objects annotate Count authors
  • Django model.foreignKey 并返回 self.text 错误

    所以我正在 Django 中处理 model py 但遇到了 2 个 pylint 错误 我不明白为什么 这是 pylint 的问题还是我在代码中做错了什么 E1120 No value for argument on delete in
  • 通过django s3中间件保存文件时获取Http403(但可以在shell中使用boto保存)

    我一直在尝试通过 django 应用程序将用户上传的文件保存到我的 s3 存储桶中 我正在使用django s3 storage https github com etianen django s3 storage中间件 但我不断收到 S3
  • 升级到 1.8.1 后 Django 管理中断

    我从 1 7 3 升级到 1 8 1 但我的管理员无法工作 并且站点无法加载 因为它在解析路径时失败 例外 Enable django contrib auth context processors auth in your TEMPLAT
  • Django查询集基于外键值的特定顺序

    对于棒球网站 我有两个模型 位置模型和球员模型 位置被命名为投手 捕手 一垒 二垒 三垒等 class Position models Model name models CharField max length 100 slug mode
  • 会话数据库表清理

    该表是否需要清除或者由 Django 自动处理 Django 不提供自动清除功能 然而 有一个方便的命令可以帮助您手动完成此操作 Django 文档 清除会话存储 https docs djangoproject com en dev to
  • Django User 模型,添加功能

    我想向 Django 的默认用户模型添加一个新函数 用于检索模型类型的相关列表 这样的 Foo 模型 class Foo models Model owner models ForeignKey User related name owne
  • 无法通过 Android 应用程序访问我的笔记本电脑的本地主机

    因此 我在发布此内容之前做了一项研究 我发现的解决方案不起作用 更准确地说 连接到我的笔记本电脑的 IPv4192 168 XXX XXX 没用 连接到10 0 2 2 加上端口 不起作用 我需要测试使用 Django Rest 框架构建的
  • Django - 在长时间处理期间显示加载消息

    我怎样才能显示请稍等从 django 视图加载消息 我有一个 Django 视图 需要花费大量时间对大型数据集执行计算 当进程加载时 我想向用户呈现一条反馈消息 例如 旋转加载动画 gif 或类似消息 在尝试了布兰登和穆拉特提出的两种不同方
  • 将 Django 中的所有视图限制为经过身份验证的用户

    我是 Django 新手 我正在开发一个项目 该项目有一个登录页面作为其索引和一个注册页面 其余页面都必须仅限于登录用户 如果未经身份验证的用户尝试访问这些页面 则必须将他 她重定向到登录页面 我看到 login required装饰器会将
  • 如何使用 django ORM 在外键字段上连接两个表?

    假设我有以下模型 class Position models Model name models CharField class PositionStats models Model position models ForeignKey P
  • PyCharm 中有 HTML 块 {%%} 的快捷方式吗?

    我正在使用 HTML 块 例如 block content 经常使用 但必须输入括号和百分比符号很麻烦 有没有捷径或其他方法可以自动执行此操作 到目前为止我刚刚发现这个 PyCharm 中有插入 的快捷方式吗 https stackover
  • 404因为重新启动webpack-dev-server

    当我尝试更改反应组件并保存它以查看热加载器是否更新了我的页面时 我在开发人员工具中得到了这个 GET http localhost 3000 public bundle 76566a1ad7e45b834d4e hot update jso
  • 如何在 Django 序列化器中使用主键

    我的模型是 class UserInfo models Model user models OneToOneField User unique True mobile no models CharField max length 10 bl
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • django Q 对象嵌套reduce

    得到非常复杂的查询 请不要尝试解决示例 问题更复杂 crit crit append Q firstcond name Q firstcond isnull True crit append Q secondcond name Q firs

随机推荐

  • 类方法如何访问同一类的另一个实例的私有成员?

    我无法理解jdk1 7中的代码 value是私有的 那么为什么代码可以使用它 例如anotherString value public final class String implements java io Serializable C
  • 不使用egit将git项目导入到工作区

    几周前我问了一个与 Egit 有关的问题 有人建议我阅读我一直在参考的 pro git 我宁愿从命令行使用 git 并等待 6 月份的 Eclipse Indigo 版本中的 egit 稳定版本 因为有很多错误 它往往会让我的 ide 停滞
  • 如何正确配置入口缓存以使其正常工作?

    我正在尝试为特定主机配置缓存 但收到 404 另外 我的配置似乎未包含在最终的 nginx conf 中 该文件不包含它 我的 ingress yaml apiVersion extensions v1beta1 kind Ingress
  • RecyclerView 中的 setLayoutManager NullPointEreException

    我试图在 RecyclerView 中接收包含数组的列表并收到错误 java lang NullPointerException Attempt to invoke virtual method void android support v
  • GOF 单例模式有任何可行的替代方案吗?

    面对现实吧 单例模式是极具争议性 https stackoverflow com questions 11831 singletons good design or a crutch 11839大量程序员的主题both栅栏的两侧 有些人觉得
  • Java - 创建一个具有指定长度并填充特定字符的新 String 实例。最好的解决方案? [复制]

    这个问题在这里已经有答案了 我确实检查了其他问题 这个问题的重点是以最有效的方式解决这个特定问题 有时您想要创建一个具有指定长度的新字符串 并使用默认字符填充整个字符串 也就是说 如果你能做到的话那就太酷了new String 10 并从那
  • Ftp 仅在 .NET 4.0 中抛出 WebException

    我有以下 C 代码 当针对 NET Framework 3 5 或 2 0 编译时 它运行得很好 我没有针对 3 0 进行测试 但它很可能也能工作 问题是 当针对 NET Framework 4 0 构建时它会失败 FtpWebReques
  • 负索引数组的实现

    我正在制作一个世界向各个方向无限延伸的游戏 这意味着您可以处于以下位置X 50 Y 50 or X 50 Y 50 但是 我真的无法用普通的 C 列表做到这一点 我想出的所有想法似乎都太复杂 效率低下 无法实现 实现无限网格的最简单方法是使
  • sql server 排序规则冲突

    当我发出 SQL 查询时 有时会收到以下错误消息 无法解决等于操作中 Latin1 General CI AS 和 SQL Latin1 General CP1 CI AS 之间的排序规则冲突 我经常解决这个问题只是使两个表排序规则相同 所
  • Windows 上 Ruby 中的 Unicode 文件名

    我有一段代码 如下所示 Dir new path each do entry puts entry end 当我列出的目录中有一个名为 世界 txt 的文件时 问题就出现了 在 Windows 7 机器上我得到输出 txt 通过谷歌搜索 在
  • R 错误:`n()` 只能在 dplyr 动词内部使用

    我收到错误的代码 numCrimesByLSOA lt crimes gt select LSOA code LSOA name Crime type gt group by LSOA code gt summarise Num crime
  • 问题:nginx:[emerg] mkdir()“/var/cache/nginx/client_temp”失败(13:权限被拒绝)

    我正在尝试跑步Nginx on Openshift但面临这个目录权限问题 由于此错误 容器未创建 以下权限设置为手动创建的文件 drwxr xr x 3 root root 79 Dec 22 02 50 etc nginx drwxr x
  • 车祸最低门槛

    我正在使用加速度计来检测车祸 我遇到了检测车祸所需的最小阈值的问题 检测车祸所需的最低阈值是多少 Override public void onSensorChanged SensorEvent event float x event va
  • 垂直或水平调整 div 大小

    如何在不使用 css 属性的情况下调整 div 垂直或水平大小 仅使用纯 javascript 代码从高度或宽度调整大小 HTML div div This is the top side s content div div div div
  • 如何强制 Git (2.5+) HTTP 传输更喜欢 SPNEGO 而不是基本身份验证?

    Summary 我正在使用 Git for Windows 2 5 1 通过 Kerbesized Git 服务器进行身份验证 当我使用表单中的 URL 时https el2 gitlab sa c kkm GrammarTools git
  • 导出到 Apps 脚本 web 应用程序的图表数据为空

    我有一个 Google 表格 我正在使用它作为我的团队正在开展的项目的数据库 我想做的是使用这些数据在 Google 网站上构建不同的屏幕 例如 我已经能够添加一个显示所有活动项目的下拉列表 选择项目后 将返回并显示 HTML 表格 现在
  • 如何在 VSC 中注释/取消注释 jsx(使用键盘 `cmd /`)?

    谁能告诉我如何在 VSC 中注释 JSX 代码 我看了下面列出的文章 似乎都没有给出具体的解决方案 而且票证似乎已经关闭 声称评论 取消评论功能已在VSC上得到妥善解决 但是 按照建议尝试以下方法后 我仍然遇到问题 在 VSC 上禁用 su
  • 二维数组的线性排序

    我是 C 编程新手 正在尝试编写一些排序程序 我编写了线性 正常排序的程序 现在我想做一个程序来对二维数组进行排序 即如果矩阵是 4 6 1 3 2 9 5 7 8 那么结果应该是 1 2 3 4 5 6 7 8 9 由于您希望 2D 数组
  • 控制 genoPlotRplot_gene_map 中的边距

    我正在制作一个plot gene map数字由genoPlotR R包 它给出了一个水平系统发育树 其中与每个叶子对齐的是一个基因组片段 这是一个简单的例子 说明了我的用法和问题 The plot gene map函数需要一个ade4的包p
  • 使用 django Rest 框架在验证步骤之前修改数据

    我有一个简单的Model存储创建它的用户ForeignKey 该模型有对应的ModelSerializer and ModelViewSet 问题是当用户提交一个POST要创造一个新记录 user应该由后端设置 我尝试覆盖perform c