最近Djangoで改めてフォロー機能のためのモデルを作った際、through引数を使ってみたところ書きやすいモデルが作れたので記事にしてみました。 特別に高度な書き方をしているわけではありませんが、フォロー機能について検索してみたところこの通りのモデルがなかなか見当たらなかったので、近い機能を作る方の参考になれば幸いです。 Djangoにおける多対多の書き方 Djangoでは多対多を表すモデルを作成する際、書き方が大きく分けて3つあります。 ManyToManyFieldのみ使用する 基本的な方法です。この場合、中間テーブルは自動生成されます。 中間モデルを作成して、ManyToManyFieldを使用しない データ同士の繋がり以外の情報(created_atなど)を持たせるために用います。 中間モデルを作成して、ManyToManyFieldのthrough引数に渡す 今回紹介する方法で