我想对同一个模型有两个外键:
class Test(models.model):
example1 = models.ForeignKey(Example)
example2 = models.ForeignKey(Example)
我收到如下错误:
字段“example1”的访问器与相关字段“Example.test_set”冲突。将related_name 参数添加到“example1”的定义中。
我想对同一个模型有两个外键:
class Test(models.model):
example1 = models.ForeignKey(Example)
example2 = models.ForeignKey(Example)
我收到如下错误:
字段“example1”的访问器与相关字段“Example.test_set”冲突。将related_name 参数添加到“example1”的定义中。
尝试使用related_name
:
class Test(models.model):
example1 = models.ForeignKey('Example', related_name='example1')
example2 = models.ForeignKey('Example', related_name='example2')
Django 使用一些 python 魔法来定义模型之间的关系,其中一些涉及在关系中使用模型的名称(这就是 'test__set' 中的 'test' 的来源。)我猜发生了什么,是它尝试将“test__set”两次放入示例模型中,一次用于您定义的每个外键。
错误消息建议尝试:定义一个related_name
可以使用的参数(覆盖其中一个'test_set'),而不是自动生成两个冲突的名称。
更多信息在这里:页面已被删除
当前与模型关系相关的页面: https ://docs.djangoproject.com/en/2.0/ref/models/fields/#module-django.db.models.fields.related
只需按照错误消息告诉您的操作即可,如果您不确定这意味着什么,请查阅related_name
.
在 django 2.0 中试试这个:
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')