在旧的 google appengine 数据存储区 API 中,“必需”和“默认”可以一起用于属性定义。使用ndb我得到一个
ValueError: repeated, required and default are mutally exclusive.
示例代码:
from google.appengine.ext import ndb
from google.appengine.ext import db
class NdbCounter(ndb.Model):
# raises ValueError
count = ndb.IntegerProperty(required=True, default=1)
class DbCounter(db.Model):
# Doesn't raise ValueError
count = db.IntegerProperty(required=True, default=1)
我想实例化一个计数器而无需指定值。我还想避免有人将该值覆盖为“无”。上面的例子就构建完成了。我可能可以在没有必需属性的情况下生活,而是添加一个increment()方法。我仍然不明白为什么必需的和默认的是相互排斥的。
这是一个错误还是一个功能?
我想你是对的。也许我在写那部分代码时感到困惑。 “required=True”意味着“不允许写入值 None”,因此应该可以将其与默认值结合起来。请在 NDB 跟踪器中提交功能请求:http://code.google.com/p/appengine-ndb-experiment/issues/list
请注意,对于重复属性,情况会更加复杂,即使实现了上述功能,重复属性也可能继续与必需或默认不兼容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)