python - Django:模型名称冲突

标签 python django django-models

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

我尝试使用:

    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/

相关文章:

django - 使用基于类的 View 查询多个模型

python - Django 模型 - 将附加信息传递给经理

python - 按小时值对列 'Time' 进行分组

python - 有效地替换坏字符

python - Google App Engine 中的 SendGrid 为 "ImportError: No module named smtpapi"

python - 如何使用我从网站上抓取的 json 填充我的 django 数据库

mysql - Django - 高效批量创建继承模型

python - 如何删除列表中满足 python 特定条件的最左边/最右边的元素?

reactjs - AWS Cognito 与 django 休息框架 react js?

用于填充 Bootstrap 行和列的 django 模板