How can I have two foreign keys to the same model in Django?
我想要同一型号的两个外键:
1 2 3 | class Test(models.model): example1 = models.ForeignKey(Example) example2 = models.ForeignKey(Example) |
我会得到错误,比如:
Accessor for field 'example1' clashes with related
field 'Example.test_set'. Add a related_name argument
to the definition for 'example1'.
尝试使用
1 2 3 | class Test(models.model): example1 = models.ForeignKey('Example', related_name='example1') example2 = models.ForeignKey('Example', related_name='example2') |
Django使用一些python魔法来定义模型之间的关系,其中一些涉及到在关系中使用模型的名称(这就是"test_u set"中的"test"来自的地方)。我想,发生的事情是,它试图在示例模型中放置"test_u set"两次,对于您定义的每个外键一次。
错误消息建议您尝试一下:定义一个
此处提供更多信息:页面已被删除
与模型关系相关的当前页面:https://docs.djangoproject.com/en/2.0/ref/models/fields/module-django.db.models.fields.related.相关
只要按照错误消息告诉您的操作,如果您不确定这意味着什么,请参考EDOCX1的文档(0)。
在Django 2.0中,尝试以下方法:
1 2 | user = models.ForeignKey(User, on_delete=models.PROTECT, null=True, related_name='user') paper = models.ForeignKey(paperRecord, on_delete=models.PROTECT, null=True, related_name='paper') |