以编程方式将页面添加到已知父级

fra*_*gue 7 wagtail

我想以编程方式为已知父级创建子页面.我怎样才能做到这一点?页面创建将在信号接收器中进行:页面在另一页面的发布时创建.

sma*_*mal 12

同时添加修订版.

from wagtail.wagtailcore.models import Page
from models import MyPage

home = Page.objects.get(id=3) # or better Page query
my_page = models.MyPage(title="test", body="<h1>the body</h1>")
home.add_child(instance=my_page)

# later when a cms user updates the page manually 
# there will be no first revision to compare against unless
# you add a page revision also programmatically.

my_page.save_revision().publish() 
Run Code Online (Sandbox Code Playgroud)

您可以在wagtailadmin页面中看到wagtail如何创建视图(第156行). https://github.com/wagtail/wagtail/blob/stable/1.13.x/wagtail/wagtailadmin/views/pages.py

更新2018-09-18:我构建了一个700页的网站,包括200个生成的页面.我从未在任何地方添加过初版修订版,也没有编辑投诉.在第一次手动编辑后,将有一个修订版.如果您认为可追溯性需要,请继续添加初始修订版.


gas*_*man 11

以编程方式创建页面:

page = SomePageType(title="My new page", body="<p>Hello world</p>")  # adjust fields to match your page type
parent_page.add_child(instance=page)
Run Code Online (Sandbox Code Playgroud)