在Django,同一型号的车怎么能有两个外键?

2024-03-28 12:24:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想要同一型号的两个外键:

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'.


Tags: testfieldformodelmodelsexample错误外键
3条回答

尝试使用^{}

class Test(models.model):
    example1 = models.ForeignKey('Example', related_name='example1')
    example2 = models.ForeignKey('Example', related_name='example2')

Django使用一些python魔术来定义模型之间的关系,其中一些涉及到在关系中使用模型的名称(这就是“test”中的“test”来自于“test”集合。)我猜,它正在尝试将“test”集合放在示例模型中两次,每个定义的外键一次。

错误消息建议尝试以下操作:定义一个related_name参数(重写其中一个“测试集”),它可以使用该参数,而不是自动生成两个冲突的名称。

更多信息here:页面已被删除

与模型关系相关的当前页: https://docs.djangoproject.com/en/2.0/ref/models/fields/#module-django.db.models.fields.related

只要按照错误消息告诉的那样做,如果不确定这意味着什么,请参阅related_name的文档。

相关问题 更多 >