Pythonndb.型号必需属性为非

2024-09-28 12:17:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个ndb.ModelProjRoute,它有一个属性date,我在模型中声明如下:

class ProjRoute(ndb.Model):
  date = ndb.DateTimeProperty(required=True)
  priceValue = ndb.FloatProperty(default=None)
  attachement = ndb.KeyProperty()
  src = PriceFilterProperty()
  dest = PriceFilterProperty()
  # Required qty
  reqQty = ndb.FloatProperty()
  ldQty = ndb.FloatProperty(default=0)
  unldQty = ndb.FloatProperty(default=0)
  amountDue = ndb.FloatProperty(default=0)
  scale1 = ndb.FloatProperty(default=0)
  scale2 = ndb.FloatProperty(default=0)
  toll1 = ndb.FloatProperty(default=0)
  toll2 = ndb.FloatProperty(default=0)
  port_permit = ndb.FloatProperty(default=0)
  port_scale = ndb.FloatProperty(default=0)
  maintenance = ndb.FloatProperty(default=0)
  other = ndb.FloatProperty(default=0)
  fuel = ndb.FloatProperty(default=0)
  gratuity = ndb.FloatProperty(default=0)
  driver_allow = ndb.FloatProperty(default=0)
  adriver_allow = ndb.FloatProperty(default=0)
  driver_bonus = ndb.FloatProperty(default=0)

我很确定我在创建一个新的ProjRoute实例时确实设置了日期值,事实上,我在调用put()函数时没有遇到任何问题。在

但是,当我试图读取实例时,我得到了一个错误,因为date属性为null。在

^{pr2}$

这个错误也不是每次我试图读取一个实例时都会出现,它是任意的。在

我认为GAE本身一定有问题,但是有人知道如何修复它或者知道一个变通方法吗?在

顺便说一下,当我记录任何ProjRoute实例时,我发现属性存储为GenereicProperty,而不是FloatProperty和{},就像我在模型中声明的那样。我想可能和这有关。在

如果您想看看,下面是我创建新实例的代码:

trsPrices = map(float, self.readAll('trs-price'))
for src, dest, price in zip(self.readAll('trs-price-src'), self.readAll('trs-price-dest'), trsPrices):
    route = ProjRoute(id=newPrice.src+"-"+newPrice.dest, parent=routeParent)
    route.attachement = newPrice.attachement
    route.src, route.dest = newPrice.src, newPrice.dest
    route.date = trsSrv.sdate
    route.priceValue = None
    toSave.append(route)

# ... Some irrelevent code
ndb.put_multi(toSave)

同样值得注意的是,我尝试使用route.put()而不是{},但问题仍然存在。在


Tags: 实例selfsrcdefaultdate属性putroute

热门问题