gpt4 book ai didi

python - GAE : Convert model to subclass of polymodel

转载 作者:行者123 更新时间:2023-11-30 23:21:35 25 4
gpt4 key购买 nike

我有一个现有的 GAE 应用程序,其中的实体数量相当少,我想更新实体以使用 Polymodel。

我目前有这样的实体:

class Mammal(db.Model)
class Reptile(db.Model)

我想将其更改为:

class Animal(polymodel.Polymodel)
class Mammal(Animal)
class Reptile(Animal)

我当前的计划是执行以下过程:

  1. 迭代所有现有实体,将类名更改为某个临时类名。例如,将 class Mammal(db.Model) 转换为 class MammalTmp(db.Model) 并将 class Reptile(db.Model) 转换为 类 ReptileTmp(db.Model)。在此过程中,我会将旧类的所有属性复制到新类。

  2. 删除class Mammal(db.Model)class Reptile(db.Model)的所有实例。

  3. 迭代所有临时实体以将类名称更改为所需的类名称和类型。例如,将 class MammalTmp(db.Model) 转换为 class Mammal(polymodel.Polymodel) 并将 class ReptileTmp(db.Model) 转换为 类 Reptile(polymodel.Polymodel)。我将再次将旧类的所有属性复制到新类。

  4. 删除 class MammalTmp(db.Model)class ReptileTmp(db.Model) 的所有实例。

这是一个费力的过程!有没有更简单的方法来实现这一点?

最佳答案

按照构建实体然后建立索引的方式,不幸的是,没有其他方法(据我所知)可以执行类似的过程。当我第一次想要实现多模型时,我必须这样做,这就是我所做的。幸运的是,所有这些都可以通过代码完成,因此您实际上不必坐在计算机前手动更改所有这些。

这确实很长,但想想数据存储提供的所有速度优势。这就是为什么您必须首先小心创建模型的原因。我知道这不一定容易(正如我所说,我和你陷入了同样的困境,并且必须为这些迭代和更改编写代码)。

以编程方式执行此过程的一个非常好的方法是使用 MapReduce 。 “映射器”绝对可以解决这个问题,并帮助您更快、更有效地完成任务。调查the sample projects可能会给你一些指导。

关于python - GAE : Convert model to subclass of polymodel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24845292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com