Python Wagtail:如何在Wagtail中复制页面实例及其所有属性和方法

Python Wagtail:如何在Wagtail中复制页面实例及其所有属性和方法,python,django-models,wagtail,Python,Django Models,Wagtail,我在Wagtail网站上有一个CoursePage模型 class CoursePage(Page): ..... institute = models.ForeignKey(Institute) ..... 我有一个django models ForeignKey领域,名为institute 我希望以编程方式复制其实例,以便可以修改新创建的instanceinstitute字段 我尝试了django复制模型实例的方法,即: course = CoursePage.ob

我在Wagtail网站上有一个CoursePage模型

class CoursePage(Page):
    .....
    institute = models.ForeignKey(Institute)
    .....
我有一个django models ForeignKey领域,名为institute

我希望以编程方式复制其实例,以便可以修改新创建的instanceinstitute字段

我尝试了django复制模型实例的方法,即:

course = CoursePage.objects.all()[0]
course.pk = None
course.save()
但这是行不通的。
它仅适用于django models.model继承的模型。但与通过页面继承的模型不同,
页面
模型实现了一种
复制
方法:

def copy(self, recursive=False, to=None, update_attrs=None,
         copy_revisions=True, keep_live=True, user=None):
它接受的参数包括:

  • recursive
    -如果为true,则也复制子页面
  • -要在其下创建新副本的页面(默认为创建现有页面的同级)
  • update\u attrs
    -复制时要更新的字段的目录,例如
    {'institute':other\u institute}
  • 复制修订
    -是否复制修订历史记录
  • 保持在线
    -是否复制“在线”状态
  • 用户
    -出于权限目的,新页面的所有者

页面
模型实现了一种
复制
方法来执行此操作:

def copy(self, recursive=False, to=None, update_attrs=None,
         copy_revisions=True, keep_live=True, user=None):
它接受的参数包括:

  • recursive
    -如果为true,则也复制子页面
  • -要在其下创建新副本的页面(默认为创建现有页面的同级)
  • update\u attrs
    -复制时要更新的字段的目录,例如
    {'institute':other\u institute}
  • 复制修订
    -是否复制修订历史记录
  • 保持在线
    -是否复制“在线”状态
  • 用户
    -出于权限目的,新页面的所有者