将未绑定的形式转换为绑定的形式?

2023-12-19

我想要一个对象的绑定形式来使用 is_valid 方法。原因是因为我有一些旧数据,我希望用户根据新的验证规则进行更正。然后,我想在我的表单中重用干净方法的代码。

我最终序列化了我的回复:

from django.utils import simplejson
from django.core.serializers import serialize

(...)

fields_dict = simplejson.loads(serialize('json', [obj]))[0]['fields']
form = forms.MyForm(fields_dict)
if form.is_valid

这可行,但看起来不太像 Djangish。另外,这似乎是一个常见问题,所以我一直在寻找更好的方法来做到这一点。

根据文档,将数据从未绑定表单转换为绑定表单并不意味着会发生:https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#the-save-method然而,这对我来说是最简单的解决方案。


有姜戈的django.forms.models.model_to_dict函数会将您现有的模型实例转换为适合绑定到的数据字典ModelForm.

与序列化和反序列化对象相比,这可能更有效,而且绝对更“Djangish”。

如果您还使用以下命令创建表单instance关键字,它会知道在保存时更新现有记录。

So:

from django.forms.models import model_to_dict

...

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

将未绑定的形式转换为绑定的形式? 的相关文章

  • 我应该如何使用 Bootstrap 设计 Django 验证错误的样式?

    当 Django 中的表单出现验证错误时 错误会在包含类的列表中给出errorlist 可以通过设置使用 Bootstrap 为元素指定错误样式class alert alert error 结合这些并使用 Bootstrap 的错误样式来
  • 如何在 PyCharm 社区版中运行 Django 项目的调试服务器?

    有人在 PyCharm 社区版中为 Django 项目设置调试配置时遇到问题吗 IDE 的社区版缺少项目设置中的项目类型选项 然后当我设置 调试 或 运行配置 时 它会要求我提供应该运行的脚本 Django 需要什么脚本 manage py
  • 将 *.appspot.com 重定向到自定义域:Google 应用引擎 (Django)

    我直接将我的一些示例代码放在这里以获得更好的了解 url py r robots txt myapp views robots r myapp views home views py def home request my code ret
  • AWS Cognito 作为网站的 Django 身份验证后端

    我对 Cognito 的理解是 它可以用来代替本地 Django 管理数据库来对网站的用户进行身份验证 然而 我没有找到任何带有通过 Cognito 登录屏幕的基本 Hello World 应用程序的详细示例 如果有人可以发布一篇文章 逐步
  • 如何确定 Django 中用户何时出现空闲超时?

    我想审核用户在我的 Django 应用程序中遇到空闲超时的情况 换句话说 如果用户的会话 cookie 的过期日期超过了 settings py 中找到的 SESSION COOKIE AGE 用户将被重定向到登录页面 当这种情况发生时 也
  • Django 迁移 - 禁用系统检查

    我从 Django 1 7 升级到 Django 1 9 我有多次迁移 自从升级以来 我无法再创建新的数据库 问题是 django manage py migrate 运行检查 检查导入应用程序 URL 这些最终导入查找数据库的代码 我可以
  • 将文件上传到S3的模拟测试用例

    我们如何模拟文件上传到 S3 我尝试过这样的事情 file mock mock MagicMock spec File name FileMock mock patch storages backends s3boto S3BotoStor
  • Django 中的行级权限

    有没有办法在 django 中进行行级权限 我以为没有 但只是在文档中注意到了这一点 权限不仅可以按对象类型设置 还可以按对象设置 具体的对象实例 通过使用 has add permission 提供了 has change permiss
  • 自定义 django-rest-framework-simplejwt 的 JWT 响应

    我正在设置 Django 来发送 JWT 响应而不是视图 我尝试使用 django rest framework simplejwt 这个框架中提供了一个函数TokenObtainPairView as view 返回一对 jwt 我需要使
  • djangorest框架:从序列化器validate()方法设置字段级错误

    我有一个序列化程序 它根据其他字段的值验证字段 在错误响应中 我想将每个字段错误显示为字段错误 而不是显示 non field errors 下的所有内容 如果我提出错误 就会发生这种情况对象级验证方法中的 ValidationError
  • GeoDjango:距离对象不可序列化

    我刚刚学习 geo django 我可以找出所有地方到一个点的距离 但是当我使用 values方法注释distance场 我得到 TypeError Object of type Distance is not JSON serializa
  • 如何从 django imageFile 输入中获取图像

    我想从ImageField文件输入然后在模板中显示图像 最后将图像保存到模型中imageField The file image request POST get image 只获取图像名称 如何获取实际图像 我需要将图像上传到NamedT
  • Django/Python:电子邮件回复已更新到站点[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 Docker 容器中看不到 Django

    我想在一个简单的 Docker 容器中运行 Django 首先 我使用 Docker 文件构建了容器 里面没有什么特别的 只有 FROM RUN 和 COPY 命令 然后我用命令运行我的容器 docker run tid p 8000 80
  • Django 的登录会话

    我正在尝试在我的网络应用程序中设置登录会话 但无法使其正常工作 我是 django 新手 阅读了会话文档 但没有连接到我的网络应用程序 我现在想要的只是检查用户是否已登录 如果没有则重定向到登录页面 这是我尝试合并登录会话的代码 设置 py
  • 使用 Django REST 框架进行 SAML SSO 身份验证

    我目前正在开发 AngularJS 前端和 Django REST 后端 我一直在使用Django rest auth https github com Tivix django rest auth过去需要对两者之间的连接进行身份验证 但现
  • Django:管理中的 AJAX ManyToManyField

    我要显示ManyToManyFields 在 admin 中就像filter horizontal确实如此 但会在用户在过滤器字段中键入内容时填充选项 有很多选项 一次性加载它们需要很多时间 I found django ajax 过滤字段
  • 如何发送正确的授权标头以进行基本身份验证

    我正在尝试从 API 发布数据 但无法通过基本身份验证 I try ajax type POST url http theappurl com api v1 method data crossDomain true beforeSend f
  • Django 响应总是用 text/html 分块无法设置内容长度

    在我的Django应用程序的views py中 我在尝试设置以下HTTP标头字段后返回一个HttpResponse对象 Create a Response Object with the content to return response
  • InterfaceError:连接已关闭(使用 django + celery + Scrapy)

    当我在 Celery 任务中使用 Scrapy 解析函数 有时可能需要 10 分钟 时 我得到了这个信息 我用 姜戈 1 6 5 django celery 3 1 16 芹菜 3 1 16 psycopg2 2 5 5 我也使用了psyc

随机推荐