2016-09-11 6 views
0

WagtailサイトにCoursePageモデルがあります。Wagtail:すべてのプロパティとメソッドでwagtailのページインスタンスをコピーするにはどうすればいいですか?

class CoursePage(Page): 
    ..... 
    institute = models.ForeignKey(Institute) 
    ..... 

私はそれでDjangoのモデルのForeignKeyフィールドを持っているが、私は新しく作成されたインスタンス研究所フィールドを変更することができるように、プログラムでそのインスタンスのコピーを作成したい

機関の名前。

私は、モデルインスタンスをコピーするのDjangoのアプローチを試みたことがある:

course = CoursePage.objects.all()[0] 
course.pk = None 
course.save() 

しかし、それはうまくdoesnot。 django モデルで継承されたモデルでのみ動作します。モデル。しかし、モデルがページで

答えて

1

を継承されていないとPageモデルは、これを行うためのcopyメソッドを実装します。

def copy(self, recursive=False, to=None, update_attrs=None, 
     copy_revisions=True, keep_live=True, user=None): 

それは受け入れるパラメータは以下のとおりです。

  • recursive - 真、コピーした場合子ページも同様
  • to - 新しいコピーを作成するページです(デフォルトは作成中です)。既存のページの兄弟)
  • update_attrs - フィールドの辞書更新するコピー中、このよう
  • copy_revisions{'institute': other_institute}として - 改訂履歴をコピーするかどうか
  • keep_live
  • - 「ライブ」の状態をコピーするかどうか
  • user - 許可目的で新しいページの所有者