迁移 NDB 模型属性的正确方法

2024-03-18

我目前在 NDB 中有一个模型,我想更改属性名称而不必接触 NBD。假设我有以下内容:

from google.appengine.ext import ndb

class User(ndb.Model):
  company = ndb.KeyProperty(repeated=True)

我想要的是更像这样的东西:

class User(ndb.Model):
  company_   = ndb.KeyProperty(repeated=True)

@property
def company(self):
   return '42'

@company.setter
def company(self, new_company):
    #set company here

有没有一种相对无痛的方法可以做到这一点?我希望能够方便地使用属性 getter/setter,但考虑到当前的实现,我希望避免接触底层数据存储。


您可以通过指定来更改类级属性名称,同时保留基础 NDB 属性名称名称=“xx”Property() 构造函数中的参数

所以可以这样做:

class User(ndb.Model):
  company_   = ndb.KeyProperty(name="company", repeated=True)

  @property
  def company(self):
    return self.company_

  @company.setter
  def company(self, new_company):
    self.company_ = new_company

所以现在无论您何时访问。公司_NDB 实际上会设置/获取“公司”内部......并且您不必进行任何数据迁移

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

迁移 NDB 模型属性的正确方法 的相关文章

随机推荐

  • 将短整型复制到 char 数组

    我有一个名为 s int 的短整型变量 它的值 2 unsighed short s int 2 我想将此数字复制到字符数组的第一个和第二个位置 假设我们有char buffer 10 我们想要两个字节s int复制于buffer 0 an
  • 登录我的帐户时,Telethon 不断将我注销。电报、Python

    该代码似乎运行完美 在我最终再次注销之前 我什至有时间用机器人对其进行了短暂的测试 此时我已经尝试了大约 10 次 但 Telethon 似乎出于某种原因将我从手机上的 Telegram 中删除了 我不知道为什么会发生这种情况 而且我也没有
  • 当我使用 Objective-C 中定义的宏时,Swift 条件编译无法正常工作

    我在 Objective C 头文件中定义了一个简单的宏 并通过项目桥接头文件将该头文件导入到 Swift 中 我能够在 Swift 中使用这个宏作为常量 但是当我使用它进行条件编译时 它无法正常工作 我在 Xcode 10 2 1 中创建
  • 如何在 gtk 中将小部件作为不同的线程加载? (瓦拉)

    我创建了这个类 出于效率原因 我想将缩略图作为不同的线程加载到图标视图中 因为如果我在同一个线程中执行此操作 GUI 加载速度会非常慢 但是当我创建线程时 它不起作用 它绘制了一些缩略图 然后它们就消失了 当我使用 join 时 它有效 这
  • 如何在 Mongoid 中更改文档的 _type?

    我在 Rails 应用程序中有以下模型 class User include Mongoid Document end class Admin lt User end 我得到一个用户 u User find some key 并尝试更改 t
  • 在 API 蓝图中表示文件上传

    我们有一个 API 端点 可以在其中上传图像文件以及文件名 字符串 和描述 字符串 养蜂场 API 蓝图不允许我拥有类似的东西 Request multipart form data Headers Authorization key At
  • Java 中最好的可调整大小的循环字节缓冲区是什么?

    我需要 Java 中的字节缓冲区类以供单线程使用 我应该能够在缓冲区后面插入数据并在前面读取数据 摊销成本为 O 1 缓冲区在满时应该调整大小 而不是抛出异常或其他东西 我可以自己写一个 但如果标准 Java 包中尚不存在这个 我会感到非常
  • 我可以覆盖 test_helper.rb 中的任务:环境来测试 rake 任务吗?

    我在 Rakefile 中有一系列 rake 任务 我想将其作为我的规范等的一部分进行测试 每个任务都以以下形式定义 task do somthing gt environment do Do something with the data
  • 在 Linux 上以编程方式获取准确的 CPU 缓存层次结构信息

    我试图获得 Linux 上当前 CPU 的数据缓存层次结构的准确描述 不仅是各个 L1 L2 L3 可能还有 L4 数据缓存的大小 还包括它们在不同系统之间分割或共享的方式核心 例如 在我的 CPU AMD Ryzen Threadripp
  • data.table 的“i”表达式中不存在(可能的错误)[重复]

    这个问题在这里已经有答案了 When i包含NA 不会返回该特定行 我不确定这是预期的行为还是真的 require data table x data table a c NA 1 3 NA x a gt 0 a 1 1 2 2 3 3 x
  • 如何更改android studio操作语言

    我是中国人 不太习惯android studio的默认语言 我知道这个问题的关键是resources en jar 文件 我已经解压了包裹 但我不知道下一步该做什么 如何更改语言 要更改语言 请按照下列步骤操作 解压Android Stud
  • 当实例变量呈现为数组列表时类的不变性

    我有一个不可变的类 假设我有一个 ArrayList 类型的成员变量的 getter 方法 在这种情况下 当我获得对该变量的引用时 我可以从中添加或删除一个元素 在这种情况下 不变性似乎受到了侵犯 谁能详细解释一下这个概念 你确实是对的 违
  • Response.Redirect 在 Global.asax 中不起作用

    我创建了一个错误页面来显示所有未处理异常的一般消息 这是Global asax中的代码 HttpContext ctx HttpContext Current string e404 PAGE ctx Request AppRelative
  • 无法读取未定义的“xxx”属性

    我使用的是 Ionic 2 其中一个组件有两个组件 并且使用发射器共享数据 但是当我执行程序时 却出现了这个错误 未捕获的运行时错误 承诺中 TypeError 无法读取属性 未定义类型错误的 BillNo 无法读取属性 BillNo 在
  • 如何使用 git diff -G?

    我正在编写一个小测试套件 该套件运行要在一堆输入文件上进行测试的工具 对于每个输入文件 该工具都会创建相应的输出文件 两者都是 XML 格式 输入和输出文件在 Git 存储库上签入 输出文件带有工具编译时的时间 因此输出文件在被测试工具重新
  • 时间:2019-03-17 标签:c#winform

    我有一个学校项目 我需要创建一个 Windows 窗体应用程序 但就我而言 我需要创建一个控制台应用程序 现在我可以通过按钮从窗口打开控制台 以及一些我不完全理解的代码 但是是否可以在打开win窗体的同时打开控制台 2 控制台可以粘在win
  • Mysql 选择每次出现的 (n) 行[重复]

    这个问题在这里已经有答案了 可能的重复 mysql 在 GROUP BY 中使用 LIMIT 来获取每组 N 个结果 https stackoverflow com questions 2129693 mysql using limit w
  • 在文件中写入特殊字符

    我正在尝试将数据写入 eps 文件 这是我的代码 header Content Type text html charset utf 8 var echo var file test eps file put contents file v
  • 如何在 VS Code 中使用 Windows 内置的 OpenSSH ssh-agent,而不是 Git bash 的?

    我在 Windows 上运行 OpenSSH 使用自秋季 秋季创作者更新以来包含内置 OpenSSH https learn microsoft com en us windows server administration openssh
  • 迁移 NDB 模型属性的正确方法

    我目前在 NDB 中有一个模型 我想更改属性名称而不必接触 NBD 假设我有以下内容 from google appengine ext import ndb class User ndb Model company ndb KeyProp