0
我對名稱空間在App Engine(python)中的工作方式感到困惑。我已閱讀https://developers.google.com/appengine/docs/python/multitenancy/multitenancy#Using_Namespaces_with_the_Datastore並遵循其建議,但爲什麼此代碼有效?它不應該使用「get」中的「當前」命名空間嗎?爲什麼App Engine命名空間在我不指望它們時被應用?
namespace_manager.set_namespace("foo")
t = model.Track(description="in foo namespace")
t.put()
namespace_manager.set_namespace("bar")
# Why doesn't this line fail?
x = model.Track.get(t.key())
x.delete()
謝謝。我提到的原始頁面說:「大多數使用數據存儲(put/query/get)而不使用其他存儲機制的簡單應用程序將在調用任何數據存儲API之前通過設置當前名稱空間而按預期工作。」這顯然是錯誤的。 – dplass
您的代碼中的功能不是數據存儲API。有兩類數據存儲功能 - google.appengine.api.datastore *和google.appengine.ext.db。假設他們分別是低級別和高級別。雖然我對前者瞭解不多,但您不能認爲適用於API的內容也適用於分機。 – Bugs