gpt4 book ai didi

python - 使用 MongoEngine Document 类方法进行自定义验证和预保存 Hook

转载 作者:IT老高 更新时间:2023-10-28 13:08:55 25 4
gpt4 key购买 nike

我目前正在探索 MongoEngine“对象文档映射器”的可能性。目前我不清楚的是,我可以在多大程度上将我的验证和对象创建逻辑转移到 Document 对象本身。

我的印象是这不应该是一个问题,但我没有找到很多关于问题的示例/警告/最佳实践

  • 在 save() 上自动调用以评估字段内容是否有效的自定义验证函数;
  • 根据字段内容的哈希值在 save() 上自动生成标识符;

我认为我需要重写 save() 方法,以便我可以调用我的自定义逻辑,但是缺乏示例让我相信这可能是一个错误的方法......

欢迎提供任何示例或对使用 mongoEngine 的高质量代码库的引用。

最佳答案

现在应该由 implementing the clean() method on a model 完成自定义验证.

class Essay(Document):
status = StringField(choices=('Published', 'Draft'), required=True)
pub_date = DateTimeField()

def clean(self):
"""
Ensures that only published essays have a `pub_date` and
automatically sets the pub_date if published and not set.
"""
if self.status == 'Draft' and self.pub_date is not None:
msg = 'Draft entries should not have a publication date.'
raise ValidationError(msg)

# Set the pub_date for published items if not set.
if self.status == 'Published' and self.pub_date is None:
self.pub_date = datetime.now()

编辑:也就是说,您必须小心使用 clean(),因为在验证模型基于模型定义中设置的规则。

关于python - 使用 MongoEngine Document 类方法进行自定义验证和预保存 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6102103/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com