python-eve:使用current_app.data.driver.db [collection] .update_one()直接更新时,是否遵守该架构?

时间:2018-09-08 18:09:05

标签: python eve

我的应用程序中有一些不赞成使用的自定义终结点,以支持从旧API到Eve的迁移。我的一个自定义端点实现了一个用于更新MongoDB数据库中文档的端点。与那些文档关联的集合具有在settings.py中定义的架构,该架构可以在执行常规发布时按预期工作。但是,当我使用update_one()而不是直接通过Eve提供的API时,将不遵守该架构。

settings.py中定义的架构是否不适用于数据库中的集合本身?有什么好方法可以将该模式应用于集合吗?

1 个答案:

答案 0 :(得分:0)

不是,不是,主要是在cerberus验证步骤中考虑了该架构,这在POST请求期间称为internaly。

如果您不想重复此行为,可以尝试执行以下操作:

from eve.utils import config
from flask import current_app as app

resource_def = app.config['DOMAIN'][resource]
schema = resource_def['schema']
validator = app.validator(schema, resource=resource)
validator.validate(document)