在旧的 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)
我想实例化一个 Counter 而不必指定一个值。我还想避免有人将该值覆盖为无。上面的例子是构造的。我可能没有必需的属性,而是添加一个 increment() 方法。我仍然看不到 required 和 default 相互排斥的原因。
它是错误还是功能?