我在Wagtail网站上有一个CoursePage模型。
class CoursePage(Page):
.....
institute = models.ForeignKey(Institute)
.....
我有一个django模型,其中的ForeignKey字段名为 institute
我想以编程方式复制其实例,以便修改新创建的实例 institute 字段。
我尝试了django复制模型实例的方法,即:
course = CoursePage.objects.all()[0]
course.pk = None
course.save()
但它没有成功。 它仅适用于使用django models.Model 继承的模型。但不是使用 Page
继承的模型答案 0 :(得分:1)
Page
模型实现了copy
方法来执行此操作:
def copy(self, recursive=False, to=None, update_attrs=None,
copy_revisions=True, keep_live=True, user=None):
它接受的参数是:
recursive
- 如果为true,则复制子页面to
- 用于创建新副本的页面(默认为创建现有页面的兄弟)update_attrs
- 复制时要更新的字段的字典,例如{'institute': other_institute}
copy_revisions
- 是否复制修订历史记录keep_live
- 是否复制“实时”状态user
- 新页面的所有者,出于权限目的