2014-09-26 77 views
2

我正在使用django-salesforce,我想在Django中創建一個模型,該模型的ForeignKey字段指向一個SFDC模型(託管在force.com上)。Django模型與ForeignKey指向銷售人員模型

我在force.com上創建了一個自定義模型,我們稱之爲SFModel,並且我可以通過繼承012xx從django(CRUD)成功完成它。

我還創建了一個django.db.models.Model,我們稱之爲DJModel,它有一個獨特的字段ForeignKey(SFModel)。該模型在管理面板上註冊。

所有模型驗證,我可以去我的管理面板嘗試創建一個DJModel的新實例。然而,當我嘗試顯示在管理我收到以下錯誤create_form:

hasattr(): attribute name must be string 

和調試流說

enter image description here

於是,我就任意的別名設置爲SF輸入我的settings.pyDATABASES。有一個專門的變量:

SALESFORCE_DB_ALIAS = 'youralias' 

但我仍然有同樣的問題。

任何推薦?

+0

它類似於支持Django中的多個數據庫,並具有像Postgres或MySQL這樣的標準後端。你不能創建一個ForeignKey例如從Postgres到MySQL。即使是相同類型的不同數據庫之間的ForeignKeys也無法創建。 我推薦類似於[GenericForeignKey](https://docs.djangoproject.com/en/1)的東西。7/REF /的contrib/CONTENTTYPES /#仿製關係)。如果您發現可在兩個標準數據庫之間運行的解決方案,我可以幫助您找到適用於標準數據庫和Salesforce的解決方案。 – hynekcer 2014-09-26 13:28:26

+1

我建議關閉這個問題,因爲它是Django不支持的功能,既不會在當前版本中使用,也不會在當前版本中使用,目前已經過時。 – hynekcer 2017-09-05 18:16:47

回答

1

(我是一個很老的防禦評論後,遲到的回答很抱歉。)讓我們期待第一個默認的Salesforce數據庫路由器配置是salesforce.models.Model是Saleforce數據庫和django.db.models.Model。 Django現在允許數據庫之間的關係。

Django文檔中Limitations of multiple databases

Django的規定目前不(和從未有過)爲外鍵或多對多一對多關係跨越多個數據庫任何支持。如果您使用路由器將模型分區到不同的數據庫,則由這些模型定義的任何外鍵和多對多關係必須位於單個數據庫內部。

我試着用sqlite作爲'默認'數據庫。有可能創建一個DJModel模型的對象,其中包含從sqlite到Salesforce的跨數據庫引用。看起來它的行爲與普通的Django跨數據庫引用類似,沒有模糊的錯誤。

(問題中使用的版本可以從行號派生出來:Django介於1.6和1.6.11之間,Django-salesforce v0.3.2或v0.4我嘗試創建一個對象,其中「create_form」而不是在django-salesforce中隨時可以找到的任何東西,並且該字符串在2008年7月已從Django文檔中刪除。)