【问题标题】:Python-eve: Is the schema respected when directly updating using current_app.data.driver.db[collection].update_one()?Python-eve:使用 current_app.data.driver.db[collection].update_one() 直接更新时是否尊重架构?
【发布时间】:2018-09-08 18:09:04
【问题描述】:

我的应用程序中有一些已弃用的自定义端点以支持从旧 API 迁移到 Eve。我的一个自定义端点实现了一个用于更新 MongoDB 数据库中的文档的端点。与这些文档关联的集合具有在settings.py 中定义的架构,在执行普通帖子时可以按预期工作。但是,当我使用 update_one() 而不是直接通过 Eve 提供的 API 时,架构不受尊重。

settings.py 中定义的模式是否未应用于数据库中的集合本身?有没有将该架构应用于集合的好方法?

【问题讨论】:

    标签: python eve


    【解决方案1】:

    不,不是,架构主要在 cerberus 验证步骤中被考虑,这在 POST 请求期间被内部调用。

    如果你不想重复这种行为,你可以尝试这样做:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-31
      • 2020-07-04
      • 2015-07-28
      • 2021-10-23
      • 1970-01-01
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      相关资源
      最近更新 更多