Wagtail api 向页面端点添加字段

Wagtail api add fields to pages endpoint

我一直在尝试遵循以下文档

http://docs.wagtail.io/en/v1.6.3/reference/contrib/api/installation.html?highlight=api

对于我的 wagtail 1.6.3 实例。

它告诉我在扩展页面的类 中的api_fields 数组中添加一个字段。

所以我试过了:

class HomePage(HeaderPage):
    body = RichTextField(blank=True)

    main_image = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+'
    )

    content_panels = HeaderPage.content_panels + [
        FieldPanel('body', classname="full"),
        ImageChooserPanel('main_image')
    ]

    test = models.CharField(max_length=20, default="test");

    api_fields = ['test', 'body', 'main_image','header_image', 'show_in_menus']

但我只在详细信息页面和 /api/v1/pages/ 端点上获得这些字段,它只显示标题和元数据字段。如何添加更多将显示在该点上的字段

您可以通过在 API URL 中指定字段来将字段添加到列表端点,例如

http://localhost:8000/api/v2/pages/?type=blog.BlogPage&fields=body

有关详细信息,请参阅 http://docs.wagtail.io/en/v1.7/advanced_topics/api/v2/usage.html#custom-page-fields-in-the-api

我不确定这是从什么版本开始的,根据 v2.2.2 您可以使用 ?fields=*

列出所有字段

示例:

http://localhost:8000/api/v2/pages/?type=home.HomePage&fields=*

只要确保包含 ?type= 否则它不会公开 api_fields

http://docs.wagtail.io/en/v2.2.2/advanced_topics/api/v2/usage.html#all-fields