2017-05-17 16 views
0

を移動し、仲介モデルのに関するドキュメントを読んだ後、その辺を持つすべての関係をクリアすることなく、関係の片側を変更する組み込みの方法はありませんようです。Djangoの多対多の仲介モデル、だから、関係

しかし、どうしたらいいですか?私は配列/オブジェクトにすべての関係を格納しなければならないかもしれないと考えていたので、1つ以上の関係を変更する必要があるときにそれらを再作成することができます。

マイモデル:

Company 
Camera 
CompanyCameraRelationship 

私はCompany 1Camera 2Company 1Camera 1との間の関係を変更したいと思います。だからこれを行うには、私はすべてCompany 1と他のカメラの関係をクリアする必要がありますか?

ご意見をいただければ幸いです!

答えて

0

既存の仲介オブジェクトを変更したいのですか?仲介モデルを使用して更新できます。

CompanyCameraRelationship.objects.filter(company='Company 1', camera='Camera 1').update(camera='Camera 2') 
+0

WHAT !?あなたは私のことを冗談にしています...なぜこれはドキュメントに記載されていませんか?それがあれば、私にそれを指摘できますか? – dcolumbus

+0

@dcolumbus他のモデルと同様にスルーモデルで作業できます。 https://docs.djangoproject.com/en/1.11/topics/db/models/#extra-fields-on-many-to-many-relationshipsスルーモデルがどのように使用できるかを説明します。 – ARJMP

+0

ブリリアント!どうもありがとうございました。 – dcolumbus