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
我一直在尝试遵循以下文档
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