使用 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迁移sql

    我想创建一个触发器 仅在满足条件时插入表 我尝试过使用 IF BEGIN END 和 WHERE 的各种组合 但 Django 每次都会返回 SQL 语法错误 这里 type user id指的是触发该事件的人 user id指的是接收到通
  • 限制 django 应用程序模型中的单个记录?

    我想使用模型来保存 django 应用程序的系统设置 因此 我想限制该模型 使其只能有一条记录 极限怎么办 尝试这个 class MyModel models Model onefield models CharField The fiel
  • 具有可变数量过滤器参数的 Django 查询

    我有一个 Django 查询 从MyModel基于某些条件 if beta MyModel object filter x alpha y beta else MyModel object filter x alpha 是否可以消除if b
  • python-social-auth 部分管道无法恢复

    我正在尝试使用 python social auth 的部分管道收集新用户的密码 由于某种未知的原因 我无法恢复管道 提交表单后页面呈现回密码收集页面 值得注意的是 即使我输入 http complete backend name 页面也会
  • Django DateField 表单在 clean_data 中生成 None

    从 django 中的 DateField 表单中选择日期并点击提交按钮后 is valid 成功 但 clean data 显示 None 有谁知道是什么问题 谢谢 forms py class DateForm forms Form d
  • 在没有模型的情况下将自定义页面添加到 django admin

    我正在尝试在没有模型关联的情况下向管理员添加自定义页面 这就是我迄今为止所取得的成就 class MyCustomAdmin AdminSite def get urls self from django conf urls import
  • 搜索多个字段

    我想我没有正确理解 django haystack 我有一个包含多个字段的数据模型 我希望搜索其中两个字段 class UserProfile models Model user models ForeignKey User unique
  • 重定向到 /admin/login/ 结果为 302

    当用户未经身份验证时 我尝试重定向到登录页面 在我的settings py我的课程有 MIDDLEWARE CLASSES path to AuthRequiredMiddleware 这是我的课程 class AuthRequiredMi
  • Django 中所有应用程序的基本模板

    我有一个包含 2 个应用程序的项目 project blog templates index html polls templates index html project templates base html index html 现在
  • 使用 Django 在 Google 地图上放置标记

    我正在尝试使用 API 和 HTML5 地理位置根据 Google 地图上模型中存储的纬度和经度放置标记 问题是如何使用模板关键字循环遍历 JavaScript 标签中存储的每个对象的经纬度信息 我不认为这可以在 Django 中完成 我在
  • 在 Django 查询中使用 .extra(select={...}) 引入的值上使用 .aggregate() ?

    我正在尝试计算玩家每周玩游戏的次数 如下所示 player game objects extra select week WEEK games game date aggregate count Count week 但姜戈抱怨说 Fiel
  • 在模板中添加浮点数(django)

    也许我遗漏了一些东西 但我想添加一个浮点数 如下所示 floatnumber add 3 4 过滤器添加我的结果 所以我不想写我的过滤器 但如果这是唯一的方法 我将复制添加过滤器 现在我正在这样做 def addf value arg Ad
  • 获取用户最近城市的最佳方式? Python/Django

    我有一个数据库中城市数量有限的网站 需要向用户显示距离他当前位置最近的城市 我可以通过 MaxMind API 获取位置 但我想获取数据库中距用户城市最近的城市 例如 如果我的数据库中有这些城市 Los Angeles San Franci
  • 无法覆盖 save_model django admin?

    我不明白我做错了什么 我希望用户只添加公告模型的标题和描述 其余部分应自动填充 这是我的模型 class Annoucement models Model username models ForeignKey User on delete
  • 如何重写 Django 中的 model.Manager.create() 方法?

    我有很多Hardware模型有一个HardwareType具有各种特征 就像这样 models py from django db import models class HardwareType model Models name mod
  • 如何在Django中编写sql COALESCE

    我是姜戈的新手 如何将 COALESCE sql 查询集写入 django orm query SELECT COALESCE max CAST order no as UNSIGNED 0 as o id from nanossc Sal
  • 如何在 django-crispy-forms 中将表单字段分布在两列布局上?

    我收到了一些使用 django crispy forms 在 Django 中创建表单的建议 我已经在文档中寻找了几个小时 但无法找出如何将表单字段分布在两列上的方法 看这个例子here https gist github com 1838
  • Django 中的动态用户菜单

    有没有办法让用户菜单根据分配给用户所属用户组的权限而变化 我正在考虑在视图级别检查这些权限 并删除用户无权的菜单选项 是的 可以访问模板中的用户对象并检查用户是否是员工 如下所示 if user is staff li a href adm
  • 电子商务是否从头开始

    我需要开发一个包含电子商务部分的新网站 我来这里是想从你那里得到一些关于我应该走哪条路的提示 该网站将有一个静态部分 其中包括一些静态页面和用于销售产品的电子商务部分 我是 Django 和 PHP 开发人员 但这是我第一次需要开发电子商务
  • 如何为我的 Django 项目正确设置 DJANGO_SETTINGS_MODULE (我正在使用 virtualenv)?

    我在为 Django 项目设置 DJANGO SETTINGS MODULE 时遇到一些问题 我有一个目录 dev django project 在这个目录中 我有一个用 virtualenv 设置的虚拟环境 还有一个名为 blossom

随机推荐

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

    我无法理解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