bas*_*ian 9 python google-app-engine app-engine-ndb google-cloud-datastore
在旧的google appengine数据存储API中,"required"和"default"可以一起用于属性定义.使用ndb我得到了一个
ValueError: repeated, required and default are mutally exclusive.
Run Code Online (Sandbox Code Playgroud)
示例代码:
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)
Run Code Online (Sandbox Code Playgroud)
我想实例化一个Counter而不必指定一个值.我还想避免有人将该值覆盖为None.构造上面的例子.我可能没有必需的属性,而是添加increment()方法.我仍然没有看到为什么必需和默认是互斥的原因.
这是一个错误还是一个功能?
Gui*_*sum 10
我想你是对的.当我编写代码的那部分时,也许我很困惑.有意义的是,"required = True"表示"不允许写入值None",因此应该可以将其与默认值组合.请在NDB跟踪器中提交功能请求:http://code.google.com/p/appengine-ndb-experiment/issues/list
请注意,对于重复的属性,事情会更复杂,即使实现了上述功能,重复也可能继续与required或default不兼容.
| 归档时间: |
|
| 查看次数: |
1493 次 |
| 最近记录: |