1. ホーム
  2. パイソン

[解決済み】Djangoのモデルインスタンスオブジェクトをクローンして、データベースに保存する方法は?

2022-03-27 15:43:47

質問

Foo.objects.get(pk="foo")
<Foo: test>

データベースには、上のオブジェクトのコピーである別のオブジェクトを追加したいと思います。

私のテーブルには1つの行があるとします。最初の行のオブジェクトを、異なる主キーを持つ別の行に挿入したいのです。どうすればよいのでしょうか?

どのように解決するのですか?

オブジェクトの主キーを変更し、save()を実行するだけです。

obj = Foo.objects.get(pk=<some_existing_pk>)
obj.pk = None
obj.save()

自動生成されたキーが必要な場合は、新しいキーを None に設定してください。

UPDATE/INSERTの詳細 こちら .

モデルインスタンスのコピーに関する公式ドキュメント。 https://docs.djangoproject.com/en/2.2/topics/db/queries/#copying-model-instances