我正在使用django-salesforce
,我想在Django中创建一个模型,它有一个指向SFDC模型(托管在force.com上)的ForeignKey
字段。
我在force.com上创建了一个自定义模型,我们称它为SFModel
,我可以通过继承salesforce.models.Model
在django (CRUD)中成功地处理它。
我还创建了一个django.db.models.Model
,我们称它为DJModel
,它有一个唯一的字段ForeignKey(SFModel)
。此模型已在管理面板上注册。
所有模型都经过验证,我可以转到我的管理面板,尝试创建一个新的DJModel
实例。但是,当我尝试在管理员中显示create_form时,我得到以下错误:
hasattr(): attribute name must be string
调试流显示
因此,我尝试在settings.py
的DATABASES
中为SF条目设置一个任意别名。这里有一个专门的变量:
SALESFORCE_DB_ALIAS = 'youralias'
但我仍然有同样的问题。
有什么建议吗?
发布于 2017-09-06 02:04:35
Django不支持它,对Salesforce的外部引用当前应该保存为CharField,而对其他数据库的引用则保存为IntegerField。
Django文档关于Limitations of multiple databases
Django目前没有为外键或跨多个数据库的多对多关系提供任何支持。如果您使用路由器将模型划分到不同的数据库,则由这些模型定义的任何外键和多对多关系必须位于单个数据库的内部。
我尝试将sqlite作为“默认”数据库进行交叉引用。可以使用从sqlite到Salesforce跨数据库引用来创建模型为DJModel的对象。它的行为类似于普通的Django跨数据库引用,没有模糊的错误,并且只能使用点引用。
编辑:多年后简化。
https://stackoverflow.com/questions/26058408
复制相似问题