django - 如何在保存之前访问 django 模型表单中字段的先前值?
问题描述
在保存表单之前,我需要访问 Django 模型实例字段的先前值。例如在form_valid
方法中需要访问模型实例的先前值。我怎样才能做到这一点?
解决方案
您可以使用复制您以前的模型实例,copy
以便在保存新实例时它不会覆盖您以前的实例:
import copy
if form.is_valid():
obj = YourModel.objects.get(pk=form.instance.pk)
prev_obj = copy.copy(obj)
// here you can access any field of your previous object related to that instance.
// prev_obj.field
new_obj = form.save()
注意:这仅适用于您要更新模型而不是在创建期间。
推荐阅读
- swiftui - 从多个图层制作收藏按钮并使用 EnvironmentObject 绑定两个列表
- angular - 子文件夹路由问题中的 Angular 应用程序
- python - 如果我在 django 中有 JSON,如何进行 post call
- node.js - Jest 测试在同时运行所有测试时随机失败
- javascript - 如何将此 item.id 值传递给 axios.get('http://localhost:5000/api/kam/:Id')
- sql - 如何从oracle sql中的内部查询输出中删除单引号
- amazon-web-services - 当我从 EC2 实例调用 s3 存储桶时,调用将通过公共互联网进行还是通过 AWS 内的私有调用进行?
- javascript - 在哪里以安全的方式将 JWT 令牌存储在反应/客户端?
- python - 梯度下降“直到收敛”问题
- reactjs - react 和 redux 以及 axios 中的请求失败,状态码为 404