Djangoのmodelで同一モデルから2個Foreignkeyを設定する方法

- アーティスト: O.S.T.
- 出版社/メーカー: Universal
- 発売日: 2017/04/07
- メディア: CD
- この商品を含むブログを見る
同一Modelから2個ForeignKeyをひとつのModelに張りたいとき
ありますよね^^ 例えば下記のようなSNSでフォロワー・フォロー関係のモデルを作りたい時。フォローする人もユーザーモデルオブジェクトだし、フォローされる人も同じユーザーモデルになるわけです。
models.py
class Follower(models.Model): follow_user = models.ForeignKey(User, on_delete=models.SET_NULL) followed_user = models.ForeignKey(User, on_delete=models.SET_NULL)
これをそのままmakemigrations→migrateしようとするとエラーになります。
解決策
related_nameを使えばOK 違う名前でテーブル保存されるようです^^
models.py
class Follower(models.Model): follow_user = models.ForeignKey(User, on_delete=models.SET_NULL, related_name='follow_user') followed_user = models.ForeignKey(User, on_delete=models.SET_NULL, related_name='followed_user')