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

django的model.save()为什么不调用full_clean()?

尹小云
2023-03-14
问题内容

我只是很好奇,是否有人知道django的orm是否有充分的理由不对模型调用’full_clean’,除非将其保存为模型表单的一部分。

请注意,当你调用模型的save()方法时,不会自动调用full_clean()。要为自己创建的模型运行单步模型验证时,需要手动调用它。 django的完整档案

(注意:报价已针对Django 1.6更新…之前的django文档也对ModelForms提出了警告。)

人们为什么不希望这种行为有充分的理由?我想如果你花时间将验证添加到模型中,则希望每次保存模型时都运行验证。

我知道如何使一切正常工作,我只是在寻找一种解释。


问题答案:

FAIK,这是因为向后兼容。带有排除字段的ModelForms,具有默认值的模型,pre_save()信号等也存在问题。



 类似资料:
  • 问题内容: 我只是好奇是否有人知道django的orm有什么理由不在模型上调用“full\u clean”,除非它被保存为模型表单的一部分。 请注意,调用模型的save()方法时,不会自动调用full\ u clean()。当您要为自己手动创建的模型运行一步模型验证时,需要手动调用它。django完全干净的医生 (注:Django 1.6的报价已更新。。。以前的django文档也对ModelFor

  • 问题内容: 我偶然发现了一个问题,可以总结如下: 当我手动创建线程(即通过实例化)时,将适当地调用它。但是,当我与一起使用时,处理程序将被忽略。我错过了什么? 我期望:消息“未捕获的异常…”的三倍 我得到:消息一次(由手动创建的线程触发)。 在Windows 7和Mac OS X 10.5上用Java 1.6复制。 问题答案: 因为异常不会被捕获。 您的ThreadFactory生成的线程没有直接

  • 问题内容: 我通过扩展和实现和创建了自己的Android帐户身份验证器。其中的某些方法由调用,而其他方法则没有。 这很好用: 当我打电话给我时,问题就发生了。AccountManager不会调用我在中定义的方法。它调用其他一些默认方法,该方法仅在启动之前检查是否存在。 这是行不通的。它没有调用我的方法: AuthenticatorService 我创建了服务并定义了。否则不应该工作。 编辑: 我在

  • 问题内容: 就像标题所问的那样,Django伙计们为什么决定使用querydict来实现request.POST对象(当然,这又使整个事情变得不可变了?) 我知道你可以通过复制帖子数据来对其进行更改 但是为什么呢?当然,仅允许事物变得易变会更简单吗?还是由于其他原因使用它而可能导致问题? 问题答案: 这是一个谜,不是吗?在调查中,一些表面上似乎合理的理论是错误的: 这样POST对象就不必实现变异方

  • 问题内容: 我正在尝试制作我的第一个Android应用程序。我注意到,如果数据库不存在,则不会调用该方法来创建表。但是,即使我尝试调试,该方法也无法正常工作。 请查看下面的代码,并给我任何建议。任何帮助将不胜感激。 问题答案: 我也遇到了 SQLiteOpenHelper的 麻烦。对我有用的是存储成员变量 在SQLiteOpenHelper子类中并调用 在构造函数中。 该问题的答案还包括一些有用的

  • 问题内容: 除了JSONP,为什么要遵循相同的域策略? 问题答案: 出于安全原因,已实施“同源起源策略”;引用维基百科的相关句子: 这种机制对现代Web应用程序具有特殊的意义,因为Web服务器广泛依赖于HTTP cookie来维护经过身份验证的用户会话,因为服务器基于HTTP cookie信息进行操作以揭示敏感信息或执行状态更改操作。 必须在客户端维护不相关站点提供的内容之间的严格分隔,以防止丢失