は例です:Djangoのmanytomanyフィールドを更新するには?ここ
私は、これらのクラスのデータベースで
class Author(models.Model):
name = models.CharField(max_length=45)
class Book(models.Model):
name = models.CharField(max_length=45)
authors = models.ManyToManyField(Author)
を持っている場合、私は名前を「ジョージ」と名「Georfe」と別のものと1本の著者を持っています。最後のものは間違いです。だから私が望むのは、著者の一人として "Georfe"を持っているすべての本に、 "George"という著者がそれを置き換えることです。
SQLでは、本当に簡単です。 「ジョージ」= 3のIDと「Georfe」= 7のIDと関係のテーブル名が「author_book」の場合:
UPDATE author_book SET id=3 WHERE id=7;
それはDjangoのORMであることを行うことは可能ですか? Iループトラフ入力ミス著者のすべての関連書籍と実行します:
は、私はそれを行うための方法を見つけbook.authors.add(Author.objects.get(id=3))
book.authors.remove(Author.objects.get(id=7))
しかし、私はこのソリューションは本当にエレガントかつ効率的に見つけることはありません。ループのないソリューションはありますか?
いくつかのタイプミスを修正するためにこれが一度に行われるのであれば、生のSQLを実行するだけではどうですか? – thedz
データベース内のデータは古いファイルメーカーDBから取得されており、修正するために多くのタイプミスがあります。私は自分ですべてのタイプミスを修正したくありません。私はクライアントが管理インターフェースでそれを行うことができたらいいと思う。 – Etienne