gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:06 24 4
gpt4 key购买 nike

我目前在 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 的便利性,但考虑到当前的实现,我想避免接触底层数据存储。

最佳答案

您可以通过在 Property() 构造函数中指定 name="xx" 参数来更改类级属性名称,同时保留底层 NDB 属性名称

所以可以做这样的事情:

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

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

关于python - 迁移 NDB 模型属性的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29527165/

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