假设我最初创建了一个 ndb.Model 并想要更改字段的 ndb 属性类型(例如 IntegerProperty 到 StringProperty),但想要转换存储在该字段中的当前数据,这样我就不会丢失该数据。一种方法是简单地创建一个新的字段名称,然后使用脚本迁移数据,但还有其他更方便的方法来完成此操作吗?
例如,假设我有以下模型:
class Car(ndb.Model):
name = ndb.StringProperty()
production_year = ndb.IntegerProperty()
我存储了实体的一个实例:
c = new Car()
c.name = "Porsche"
c.production_year = 2013
并希望将 production_year 更改为 ndb.StringProperty() 而不会“丢失”我设置的值(它仍然存在,但无法检索)。如果我只是将 production_year 更改为 ndb.StringProperty() 的实例,则字段值不会报告有意义的值,因为类型不匹配。
因此,如果我将模型更改为:
class Car(ndb.Model):
name = ndb.StringProperty()
production_year = ndb.StringProperty()
尝试使用点表示法检索字段将导致值为 None。任何人都遇到过这种情况,你能解释一下你做了什么来解决它吗?谢谢。