【发布时间】:2021-07-05 18:32:06
【问题描述】:
我只是为了保存页面:
parent_page = Page.objects.get(title="parent")
page = Page(title="child", owner=request.user)
parent_page.add_child(instance=page)
page.save() # not sure if this required
如果我需要保存草稿页怎么办?这段代码似乎可以工作,但我不确定它是否正确:
parent_page = Page.objects.get(title="parent")
page = Page(title="child", live=False, owner=request.user)
parent_page.add_child(instance=page)
page.save_revision()
page.save()
是否需要在 page.save_revision() 之后调用 page.save()?
在我的情况下,使用此代码一切正常,但我注意到 PageRevision.user_id 为空。它将如何影响我的代码? 从 wagtail 代码中,我看到我可以使用用户参数保存修订:
page.save_revision(user=request.user, log_action=True)
我已经在没有用户的情况下保存了修订,并且没有看到任何副作用。这个领域有多关键?我是否需要为所有现有修订填写 user_id 字段?
附:看起来最好将此代码包装在事务中,因为当它由于验证错误manage.py fixtree而失败时,请显示错误Incorrect numchild value。
【问题讨论】:
标签: django wagtail revision addchild