我最初遵循模型设置
class Obj (db.Model):
name = db.StringProperty(required=True)
rating = db.IntegerProperty(default=0, required=False)
上面已经创建了实体,例如:
name =“test1”,rating =“3”
所以,我需要将评级类型更改为浮动。我试图用db.Expando
来实现这一点class Obj (db.Expando):
name = db.StringProperty(required=True)
rating = db.FloatProperty(default=0, required=False)
在我能够检索Obj模型的实例以将其更新为浮点值之前,我已经收到以下错误:
物业评级必须是浮动
首先,我收到此错误,因为我没有使用db.Expando。但是,在使用db.Expando之后,我认为这个错误不应该到位?因为它可以动态地改变值,所以当我阅读文章时输入等。
作为db.Expando的新手,我需要帮助。有没有人知道发生了什么?
修改
for o in Obj.all():
a = []
if o.rating:
o.rating = float(str(restaurant.rating))
else:
o.rating = float(0)
a.append(restaurant)
db.put(a)
拥有上述代码后,会弹出相同的错误
物业评级必须是浮动
解 暂时从模型定义中删除了评级,并将值更新为float,然后使用db.FloatProperty
添加新的评级定义答案 0 :(得分:3)
db.Expando
模型允许您添加类本身未定义的属性;但是,在类中显式定义 的任何属性都需要是正确的类型。
只需从模型定义中删除rating
即可。