当前位置: 首页 > 面试题库 >

Django ModelForm:save(commit = False)用于什么?

江雅懿
2023-03-14
问题内容

为什么我会用,save(commit=False)而不是仅仅从ModelForm子类创建表单对象并运行is_valid()以同时验证表单和模型?

换句话说,这是save(commit=False)为了什么?

如果你不介意,你们能提供一些可能有用的假设情况吗?


问题答案:

当你从表单中获取大多数模型数据但需要null=False用非表单数据填充某些字段时,这很有用。

使用commit = False保存将为你提供一个模型对象,然后你可以添加额外的数据并将其保存。



 类似资料:
  • 问题内容: 来自javascript类型的jQuery文档中的这段代码片段描述了转换为布尔值时字符串的行为(该主题与该问题无关,但这只是我找到代码的地方): 我得到了前三个示例,但没有得到最后一个示例,因为: 所以我假设: 但反而: 我什至不知道这是什么… 是因为: 如果是这样,这有什么目的? 问题答案: 返回一个不为null 的 对象 。非空对象始终是真实的。 结果,任何非null对象将始终为f

  • 问题内容: 我正在阅读本文: 在SQL中获取null == null 共识是,当尝试测试两个(可空)sql列之间的相等性时,正确的方法是: 当A和B为时,(A = B)仍返回FALSE,因为NULL不等于NULL。这就是为什么需要额外检查的原因。 检验不平等情况如何?经过以上讨论,我认为要测试不平等,我需要做一些类似的事情: 但是,我注意到这不是必需的(至少在informix 11.5上没有),我

  • 问题内容: 我在Tomcat上确实有一个用Java编写的webapp,默认情况下所有连接都应为。现在,如果我确实仅在事务中运行SELECT语句。我仍然需要打电话吗?仅关闭连接就足够了吗? 物有所值:我使用的是Oracle 11.2。 问题答案: 关闭连接就足够了,无需调用或。 但是根据connection.close(),建议调用commit或rollback。

  • 问题内容: 使用括号时,这些语句为什么能按预期工作: 但是 ,如果没有括号,它会返回吗? 问题答案: 基于有关操作符优先级的python 文档 : 请注意,比较,成员资格测试和身份测试均具有相同的优先级,并且具有“比较”部分中所述的从左到右的 链接 功能。 因此,实际上您有一个链接语句,如下所示: 您可以假定中心对象将在2个操作和其他对象之间共享(在这种情况下为False)。 并且请注意,对于所有

  • 在try/catch块中有三个sql查询。Autocommit是关闭的,并且所有三个查询都没有错误地运行,我已经验证了这一点(如果任何查询失败,它应该不会到达commit行,但是我已经通过xdebug验证了它,一次单步执行代码一行)。当代码到达commit()函数调用时,mysqli返回false,但没有错误消息。当前面的查询都工作时,提交怎么会失败呢? 代码基本上是这样的:

  • 为什么当使用括号时,这些语句会像预期的那样工作: 但是当没有括号时,它返回?