【问题标题】:The behavior of rmbedding of a specific version of a document is unexpected文档特定版本的 rmbedding 行为是意外的
【发布时间】:2016-05-21 02:58:44
【问题描述】:

我非常成功地使用了 Python REST API 框架,我感谢它的作者提供它。

根据(稀疏)文档,可以应用特定版本的嵌入。考虑以下直接从http://python-eve.org/的文档复制的示例

 DOMAIN = {
     'emails': {
         'schema': {
             'author': {
                 'type': 'dict',
                 'schema': {
                     '_id': {'type': 'objectid'},
                     '_version': {'type': 'integer'}
                 },
                 'data_relation': {
                     'resource': 'users',
                     'field': '_id',
                     'embeddable': True,
                     'version': True,
                 },
             },
             'subject': {'type': 'string'},
             'body': {'type': 'string'},
         }
     }

这里,“作者”是每个电子邮件文档中包含“_id”和“_version”字段的架构。

A.假设我的前端正在运行 Javascript,当我应用语句时

Restangular.one('emails', some-id).get({embedded: {"author": 1}}).then(

要检索具有给定 ID 的电子邮件文档并请求嵌入作者文档,我会获取作者的最新版本,而不是电子邮件文档作者的 _version 字段中指示的版本。为什么不尊重版本?有没有办法通过一些神奇的配置来强制嵌入其中指示的版本?

BW,解决方法很简单——简单地抑制这种自动嵌入,而是先检索电子邮件文档,然后检索作者的特定版本,但这很不直观。

B.手册列出了一个名为“embedded_fields”的配置属性,它指定并引用了默认启用嵌入式资源序列化的字段列表。 A 期望即使此字段指定默认情况下应嵌入作者,该语句

Restangular.one('emails', some-id).get({embedded: {"author": 0}}).then(

将覆盖默认值。好吧,它没有。再说一遍,为什么?或者这只是一个错误。

【问题讨论】:

    标签: python versioning eve


    【解决方案1】:

    您使用的是哪个版本的 Eve? 0.6 之前的嵌入式版本化文档存在问题,但应该在提交 b92890 中全部解决。尝试升级到 v0.6.1,或者如果您在 0.6 后遇到问题,请告诉我。

    【讨论】:

    • 显然我使用的版本早于 0.6。确实,0.6.1 版按预期工作——我提出的两个问题都已解决。
    猜你喜欢
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2014-09-24
    • 1970-01-01
    相关资源
    最近更新 更多