class User(models.Model):
name = models.CharField(max_length=60)
class Product(models.Model):
user = models.ForeignKey(User, on_delete=models.SET_NULL)
user2 = models.ForeignKey(User, on_delete=models.SET_NULL)
こんなmodelを作りたかった。
しかしこんなエラーメッセージが表示される。
RECURSIVE_RELATIONSHIP_CONSTANT,
AssertionError: ForeignKey(<django.db.models.fields.related.ForeignKey>) is invalid. First parameter to ForeignKey must be either a model, a model name, or the string 'self'
ググってみると、related_nameを追加すればいいとあるがやはりダメ。
しかし、Djangoの公式ドキュメントを見たら一発解決。
class Product(models.Model):
user = models.ForeignKey('User', related_name='user_from')
user2 = models.ForeignKey('User', related_name='user_from')
'User'とクォーテーションで囲ったらイケた。
ForeignKeyを一つしか定義してないときはクォーテーションで囲わなくても大丈夫だったからまさかこんなので直るとは思っていなかった。まずググる前に公式ドキュメントを見るのが一番だと痛感した。