gpt4 book ai didi

python - Django:模型名称冲突

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:04 25 4
gpt4 key购买 nike

我正在尝试在我的项目中使用不同的开源应用程序。问题是两个不同的应用程序使用相同的模型名称,它们具有自己的模型定义。

我尝试使用:

    class Meta:
db_table = "db_name"

但是没有用。我仍然在 syncdb 收到字段名称冲突错误。任何建议。

更新

我实际上正在尝试将 Satchmo 与 Pinax 集成。错误是:

Error: One or more models did not validate:

contact.contact: Accessor for field 'user' clashes with related m2m field 'User.contact_set'. Add a related_name argument to the definition for 'user'.

friends.contact: Accessor for m2m field 'users' clashes with related field User.contact_set'. Add a related_name argument to the definition for 'users'.

你是对的,表名已经是唯一的。我分析了模型,模型“联系人”位于两个不同应用程序的两个模型中。当我注释掉其中一个模型时,它工作正常。

可能存在错误,因为两个应用程序都在 PYTHON_PATH 中,并且当其他应用程序定义其具有相同名称的模型时会发生冲突。

最佳答案

问题是 Satchmo 和 Pinax 都有一个 Contact 模型,它有一个 ForeignKey to User。 Django 尝试为每个外键向用户添加一个“contact_set”反向关系属性,因此存在冲突。

解决方案是添加类似 related_name="pinax_contact_set"的参数作为 Pinax 联系模型中 ForeignKey 的参数,或者类似地在 Satchmo 联系模型中。这将需要直接为一个或另一个编辑源。您也许可以通过 monkeypatching 找到一种方法来完成此操作,但我认为这会很棘手。

关于python - Django:模型名称冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1036506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com