【问题标题】:Django model field validator function used for update or insert [closed]用于更新或插入的 Django 模型字段验证器功能 [关闭]
【发布时间】:2012-09-21 19:44:48
【问题描述】:

有没有办法确定 Django 模型字段验证器函数内部是否用于更新或插入?

【问题讨论】:

  • 简短的回答是否定的。你想达到什么目的?可能有比尝试使用验证器更好的方法,例如在 clean 方法中检查 pk。

标签: django django-models django-validation


【解决方案1】:

不确定是否是您要查找的内容,但我通常使用 self.pk 来确定模型是否已保存。如果没有主键,我可以假设它是一个插入。

【讨论】:

  • 在 clean 方法中,你会使用:self.instance.pk
【解决方案2】:

不,没有。验证器只是一个可调用的,它接受一个值并检查它。它无法访问正在验证的字段或实例,因此无法判断它是新实例还是现有实例。

【讨论】:

  • 谢谢。当我的主要对象被保存时,我正在尝试更新/插入不同类型的第二个对象。我希望保存第二个对象的问题在指向它的主对象的外键字段中显示为错误。这就是我使用验证器的原因,这就是为什么我需要在验证时知道它是更新还是插入
  • 您可以尝试为模型编写clean 方法,但这不会让您将错误分配给特定字段。或者,您可以使用模型表单,然后您可以分配errors to a specific field in the clean method
猜你喜欢
  • 1970-01-01
  • 2010-12-10
  • 2019-12-24
  • 2021-02-10
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
相关资源
最近更新 更多