嵌套关系wagtail api

时间:2018-05-07 15:22:51

标签: api wagtail

我有以下数据结构:

{"related_cases": [
    {
        "type": "related_case_block",
        "value": {
            "case": 13,
            "short_text": "Case 2 is related!"
        },
        "id": "3aec5efe-55dc-441f-aa5c-fbbb801d237a"
    }
]}

相关案例是内部有块的流场。每个块都包含对另一个案例页面的引用。在这种情况下,这是13。

我想将此案例中的一些字段包含在响应中,如下所示:

 {"related_cases": [
    {
        "type": "related_case_block",
        "value": {
            "case": {
                "id": 13,
                "title": "Case 2"
            },
            "short_text": "Case 2 is related!"
        },
        "id": "3aec5efe-55dc-441f-aa5c-fbbb801d237a"
    }
]}

任何人都可以解释我将如何实现这一目标吗?

1 个答案:

答案 0 :(得分:2)

假设您已将related_case_block定义为StructBlock的子类,则可以覆盖该类的get_api_representation方法:

class RelatedCaseBlock(blocks.StructBlock):
    # ...
    def get_api_representation(self, value, context=None):
        return {
            'case': {
                'id': value['case'].id
                'title': value['case'].title
            },
            'short_text': value['short_text']
        }