Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 每种名称空间_Python_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Python 每种名称空间

Python 每种名称空间,python,google-app-engine,google-cloud-datastore,Python,Google App Engine,Google Cloud Datastore,我有一个项目,将需要数据分离 将实施多个“系统”。每个都将基于一个通用模型。要在GAE数据存储中保存它,我可以使用前缀:4EClass、3EClass和PthClass。我宁愿使用名称空间,因为它看起来更干净 我希望能够在kind的子类中设置名称空间: class Class(db.Model): namespace = '4E' 有没有一种方法可以让put、query等更好地使用这些名称空间,而不必执行Class.query(namespace=Class.namespace)之类的

我有一个项目,将需要数据分离

将实施多个“系统”。每个都将基于一个通用模型。要在GAE数据存储中保存它,我可以使用前缀:
4EClass
3EClass
PthClass
。我宁愿使用名称空间,因为它看起来更干净

我希望能够在kind的子类中设置名称空间:

class Class(db.Model):
    namespace = '4E'

有没有一种方法可以让put、query等更好地使用这些名称空间,而不必执行
Class.query(namespace=Class.namespace)
之类的操作?

我认为您需要的是多模型。这里有ndb:
或db:

我还建议您使用
ndb
而不是
db
包。

为此使用名称空间没有多大意义-名称空间与模型类正交

相反,您可以独立于类名指定种类名称:

class MyModel(db.Model):
  @classmethod
  def kind(cls):
    return "MyModel_Foo"

你的问题很不清楚(至少对我来说)。也许你在找?你看过polymodels吗?我可以使用PolyModels,但我正在寻找一种在Model(或PolyModel)子类中设置名称空间的方法。您希望使用名称空间的原因是什么?使用polymodels,您可以查询模型的子类,并使用超类查询所有子模型。使用名称空间会限制您这样做,但可能您有这样做的原因。我想使用名称空间,因为我可能有大量重叠的独立部分。