2024-04-28 17:08:16 发布
网友
我目前在NDB有一个模型,我想更改属性名称,而不必接触NBD。假设我有以下内容:
from google.appengine.ext import ndb class User(ndb.Model): company = ndb.KeyProperty(repeated=True)
我想要的是这样的东西:
有没有相对无痛苦的方法?我希望使用属性getter/setters更方便,但是考虑到当前的实现,我希望避免触及底层数据存储。在
通过在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
所以现在只要你访问。公司NDB实际上会在内部设置/获取“公司”。。。而且您不必执行任何数据迁移
根据我对ndb的理解,属性名与每个实体的内容一起存储在数据库中。您必须用新的属性名(而不是旧的)重写每个实体。在
ndb
因为这不是无痛的,也许您可以为getter和setter选择其他名称,比如get_company和{}。在
get_company
通过在property()构造函数中指定name=“xx”参数,可以更改类级别的属性名称,同时保留基础NDB属性名称
所以可以这样做:
所以现在只要你访问。公司NDB实际上会在内部设置/获取“公司”。。。而且您不必执行任何数据迁移
根据我对
ndb
的理解,属性名与每个实体的内容一起存储在数据库中。您必须用新的属性名(而不是旧的)重写每个实体。在因为这不是无痛的,也许您可以为getter和setter选择其他名称,比如}。在
get_company
和{相关问题 更多 >
编程相关推荐