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