2

我正在使用django-salesforce并且我想在 Django 中创建一个模型,该模型具有ForeignKey指向 SFDC 模型(托管在 force.com 上)的字段。

我在 force.com 上创建了一个自定义模型,让我们调用它SFModel,我可以通过子类化从 django (CRUD) 成功处理它salesforce.models.Model

我还创建了一个django.db.models.Model,让我们称之为DJModel,它有一个独特的领域ForeignKey(SFModel)。该模型已在管理面板上注册。

所有模型都经过验证,我可以去我的管理面板尝试创建一个新的DJModel. 但是,当我尝试在管理员中显示 create_form 时,出现以下错误:

hasattr(): attribute name must be string

调试流说

在此处输入图像描述

所以我尝试为DATABASES我的settings.py. 有一个专用变量:

SALESFORCE_DB_ALIAS = 'youralias'

但我仍然有同样的问题。

有什么推荐吗?

4

1 回答 1

1

Django 不支持它,对 Salesforce 的外部引用当前应保存为 CharField,而对其他数据库的引用应保存为 IntegerField。

Django 文档关于多个数据库的限制

Django目前支持外键或跨多个数据库的多对多关系。如果您使用路由器将模型分区到不同的数据库,则这些模型定义的任何外键和多对多关系必须在单个数据库内部。

我尝试使用 sqlite 作为“默认”数据库进行交叉引用。可以使用从 sqlite 到 Salesforce 的跨数据库引用创建模型 DJModel 的对象。它的行为类似于普通的 Django 跨数据库引用,没有模糊的错误,并且只能使用点引用。

编辑:多年后简化。

于 2017-09-05T18:04:34.610 回答