Djangoのmodelで同一モデルから2個以上Foreignkeyを設定する方法
転載元ブログ情報
自分のブログからの転載です
http://k-mawa.hateblo.jp/entry/2018/02/22/183711
同一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 フィールドごとに競合せずにDBに登録されるようです^^
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')
Author And Source
この問題について(Djangoのmodelで同一モデルから2個以上Foreignkeyを設定する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/k_mawa82/items/919629e3b5f1bb88ef9e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .