Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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 2.7 如何按名称查询Google App Engine实体以转换为新名称?_Python 2.7_Google App Engine_Google App Engine Python - Fatal编程技术网

Python 2.7 如何按名称查询Google App Engine实体以转换为新名称?

Python 2.7 如何按名称查询Google App Engine实体以转换为新名称?,python-2.7,google-app-engine,google-app-engine-python,Python 2.7,Google App Engine,Google App Engine Python,我想将一些实体转换为新名称。如何查询未定义模型类的实体 例如,我有这样的实体(简化为更可读): 我想将其重命名为: class SomeFile(ndb.model): name = ndb.StringProperty() 我怎么做 如果将Some重命名为SomeFile,则将不再需要查询Some,而只查询数据存储中的数据。也许我不理解您的问题,但这是您想要的吗?: for x in Some.query(): y = SomeFile() y.name = x.name

我想将一些实体转换为新名称。如何查询未定义模型类的实体

例如,我有这样的实体(简化为更可读):

我想将其重命名为:

class SomeFile(ndb.model):
  name = ndb.StringProperty()
我怎么做


如果将
Some
重命名为
SomeFile
,则将不再需要查询
Some
,而只查询数据存储中的数据。

也许我不理解您的问题,但这是您想要的吗?:

for x in Some.query():
    y = SomeFile()
    y.name = x.name
    y.put()
    x.key.delete()

尽管您应该通过成批执行来提高效率。

您可以通过覆盖模型的
\u get\u Kind()
方法来更改模型类名并使其指向现有的数据存储
种类

class SomeFile(ndb.Model):
    @classmethod
    def _get_kind(cls):
      return 'Some'
现在,您可以在python代码中使用
SomeFile
,同时在数据存储中保留
某些
实体


这是个好主意。无论我想要什么,都要更改所有名称以简化代码。我更喜欢X是X,而不是X是Y。你已经删除了旧模型的名称,这是你的选择,或者你可以临时替换旧模型,像其他答案一样进行交换。我不能工作,你假设类有些是存在的,但将被替换,有些将被删除,因为死代码。我不能维护死代码,因为它阻碍了开发。我不理解你的评论。。。如果
class Some()
不存在,那么只需将其创建为Expando,这样就不需要列出属性。在转换之后,你删除这个“代码”>“类”()的简单定义(< /代码>),这样你就不会保存死区代码。它很简单,我不能有一些(NDB。model),因为这个代码必须在更新之后不被删除。——在100补丁之后,我将有50个(EpxDANO)……这就是不保存死物的问题。
class SomeFile(ndb.Model):
    @classmethod
    def _get_kind(cls):
      return 'Some'