私は別のモデルでM2Mを持つモデルを持っています。このように:ManyToMany関係でオブジェクトを削除した後にデータを保持
class Author(models.Model):
name = models.CharField(max_length=50)
class Book(models.Model):
author = models.ManyToManyField("Author")
私はBook
オブジェクトに追加されたAuthor
からオブジェクトを削除しても、中間テーブル内のデータを保存しておきたいです。 Foreign Keyフィールドのように、on_delete=models.DO_NOTHING
があります。
私はDjangoにこの「機能」はないと思います。
私がAuthor.objects.all()。delete()を実行するたびに、Booksのフィールド作成者は空になります。私はそれらを空にしたくありません。 delete()の前にデータを保持したい。
私はこれをやりたいのは、私がフィードを受け取り、このフィードのサマリーを行うからです。彼らは更新される可能性があり、私はデータをチェックし続けたくないので、私は作成者からオブジェクトを削除します。削除が簡単で、データはPKを変更するものではありません。
削除する前のデータを保持したい場合は、削除しないでください。私が理解しているように、あなたのステートメントは太字で表示されますが、削除の定義によっては不可能です。すでに保存しているオブジェクトを更新し、必要に応じて取得する必要があります。 – Neelik
@Neelik、何もできません。利用可能な時間、労力、リソースの問題です。私は1つの解決策に取り組んでいて、うまくいけば投稿します... – mk2
私はあなたの解決策を見たいと思うでしょう。私の提案は、あなたのフィードにその変更を伝えることができるAuthorモデルに投稿保存信号を追加することです。これにより、最新の情報を維持し、削除を防ぐことができます。あなたの状況で、削除が必要な理由について私は興味がありますか? – Neelik