5

我有包含嵌入图像列表的项目端点。该方案如下所示:

_schema = {
    'name': required_string,  # group name
    'description': {
        'type': 'string',
        'maxlength': 140,
    },
    'images': {
        'type': 'list',
        'scheme': {
            'type': 'objectid',
            'data_relation': {
                'resource': 'images',
                'embeddable': True,
                'field': '_id',
            }
        },
    }
}

所以我正在尝试向项目端点发出请求以获取嵌入式对象

/items/549ae47f4fb9041305403292?embedded={"images":1}

但是我收到的不是嵌入的图像,而是带有图像_ids 列表的常规对象。

这是一个对象的例子:

{
    "_updated": "Wed, 24 Dec 2014 16:06:23 GMT",
    "name": "New Item",
    "images": [
        "549ae47f4fb904130540328b",
        "549ae47f4fb904130540328e",
        "549ae47f4fb9041305403291"
    ],
    "_created": "Wed, 24 Dec 2014 16:06:23 GMT",
    "_id": "549ae47f4fb9041305403292",
    "_etag": "949e3b731823bb2c08682ba4b6696b86856ef941",
    "description": "The best item ever"
}

我试图将列表中的图像 ID 转换为对象 ID,但它没有帮助。任何想法为什么它不起作用?谢谢

4

1 回答 1

6

您的架构定义不正确。定义列表时替换scheme为:schemaimages

_schema = {
    'name': required_string,  # group name
    'description': {
        'type': 'string',
        'maxlength': 140,
    },
    'images': {
        'type': 'list',
        'schema': {                 # this was 'scheme' in your def
            'type': 'objectid',
            'data_relation': {
                'resource': 'images',
                'embeddable': True,
                'field': '_id',
            }
        },
    }
}

然后它将正确嵌入您的图像列表。

于 2015-01-03T09:10:39.027 回答