Wagtail:如何在 wagtail 中复制页面实例及其所有 属性 和方法
Wagtail: How can I copy a page instance in wagtail with all its property and method
我在 Wagtail 网站上有一个 CoursePage 模型。
class CoursePage(Page):
.....
institute = models.ForeignKey(Institute)
.....
我有一个名为 institute
的 django 模型 ForeignKey 字段
我想以编程方式复制其实例,以便可以修改新创建的实例 institute 字段。
我尝试了复制模型实例的django方法,即:
course = CoursePage.objects.all()[0]
course.pk = None
course.save()
但是没有成功。
它仅适用于 django models.Model 继承的模型。但不是继承自 Page
的模型
Page
模型实现了一个 copy
方法来执行此操作:
def copy(self, recursive=False, to=None, update_attrs=None,
copy_revisions=True, keep_live=True, user=None):
它接受的参数是:
recursive
- 如果为真,也复制子页面
to
- 创建新副本的页面(默认创建现有页面的兄弟页面)
update_attrs
- 复制时要更新的字段字典,例如 {'institute': other_institute}
copy_revisions
- 是否复制修订历史
keep_live
- 是否复制'live'状态
user
- 新页面的所有者,出于许可目的
我在 Wagtail 网站上有一个 CoursePage 模型。
class CoursePage(Page):
.....
institute = models.ForeignKey(Institute)
.....
我有一个名为 institute
的 django 模型 ForeignKey 字段我想以编程方式复制其实例,以便可以修改新创建的实例 institute 字段。
我尝试了复制模型实例的django方法,即:
course = CoursePage.objects.all()[0]
course.pk = None
course.save()
但是没有成功。 它仅适用于 django models.Model 继承的模型。但不是继承自 Page
的模型Page
模型实现了一个 copy
方法来执行此操作:
def copy(self, recursive=False, to=None, update_attrs=None,
copy_revisions=True, keep_live=True, user=None):
它接受的参数是:
recursive
- 如果为真,也复制子页面to
- 创建新副本的页面(默认创建现有页面的兄弟页面)update_attrs
- 复制时要更新的字段字典,例如{'institute': other_institute}
copy_revisions
- 是否复制修订历史keep_live
- 是否复制'live'状态user
- 新页面的所有者,出于许可目的