如何在 Wagtail 中无头地创建页面?
How do I headlessly create a page in Wagtail?
有什么方法可以模仿 Wagtail 创建页面的行为吗?
我能想到的唯一方法是完全复制他们在管理界面中单击 'Publish' 时发送的 POST
请求,但这太可怕了。
我需要这个,因为我需要从 api 获取产品列表,处理它们并将它们插入我的数据库。我更愿意通过 wagtail 来做这件事,这样我就不会偏离我的 CMS
在一个完美的世界中,这将是对某个 api 端点的调用,我在请求正文中提供所需的字段。
为什么不创建管理命令。
https://docs.djangoproject.com/en/3.1/howto/custom-management-commands/
您可以使用管理命令(或任何其他触发器)执行以下操作:
from wagtail.core.models import Page
from myapp.models import CustomPage
parent_page = Page.objects.filter(slug="parent_page")[0] # get a suitable parent
page = CustomPage(
title="Sample name",
depth=4,
path="Some random path",
)
parent_page.add_child(instance=page)
有什么方法可以模仿 Wagtail 创建页面的行为吗?
我能想到的唯一方法是完全复制他们在管理界面中单击 'Publish' 时发送的 POST
请求,但这太可怕了。
我需要这个,因为我需要从 api 获取产品列表,处理它们并将它们插入我的数据库。我更愿意通过 wagtail 来做这件事,这样我就不会偏离我的 CMS
在一个完美的世界中,这将是对某个 api 端点的调用,我在请求正文中提供所需的字段。
为什么不创建管理命令。
https://docs.djangoproject.com/en/3.1/howto/custom-management-commands/
您可以使用管理命令(或任何其他触发器)执行以下操作:
from wagtail.core.models import Page
from myapp.models import CustomPage
parent_page = Page.objects.filter(slug="parent_page")[0] # get a suitable parent
page = CustomPage(
title="Sample name",
depth=4,
path="Some random path",
)
parent_page.add_child(instance=page)