当前位置:  开发笔记 > 编程语言 > 正文

如何在Django中为同一个模型提供两个外键?

如何解决《如何在Django中为同一个模型提供两个外键?》经验,为你挑选了3个好方法。

我想要两个外键到同一个模型:

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

我得到的错误如下:

字段'example1'的访问者与相关字段'Example.test_set'冲突.将related_name参数添加到'example1'的定义中.

strager.. 111

尝试使用related_name:

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

我在应用程序中有两个模型试图这样做.第二种方法适用于这种方法:它必须是第一个模型的外键.第一个模型不起作用.也许是因为它指的是引进的模型.有没有人用进口型号做这个工作? (2认同)


Matt.. 22

Django使用一些python魔法来定义模型之间的关系,其中一些涉及在关系中使用模型的名称(这是'test__set'中的'test'来自的地方.)我猜,正在发生的是,它是试图将"test__set"放在Example模型中两次,对于你定义的每个外键一次.

错误消息提示要尝试:定义一个related_name参数(覆盖其中一个'test_set')它可以使用而不是自动生成两个冲突名称.

更多信息在这里:网页已被删除

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



1> strager..:

尝试使用related_name:

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


我在应用程序中有两个模型试图这样做.第二种方法适用于这种方法:它必须是第一个模型的外键.第一个模型不起作用.也许是因为它指的是引进的模型.有没有人用进口型号做这个工作?

2> Matt..:

Django使用一些python魔法来定义模型之间的关系,其中一些涉及在关系中使用模型的名称(这是'test__set'中的'test'来自的地方.)我猜,正在发生的是,它是试图将"test__set"放在Example模型中两次,对于你定义的每个外键一次.

错误消息提示要尝试:定义一个related_name参数(覆盖其中一个'test_set')它可以使用而不是自动生成两个冲突名称.

更多信息在这里:网页已被删除

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


此更多信息链接不再有效

3> James Bennet..:

只需执行错误消息告诉您的操作,如果您不确定这意味着什么,请参阅文档related_name.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有