【发布时间】:2018-11-26 15:07:02
【问题描述】:
如何验证空表单字段字符串 '' 以将 None 分配给 IntegerProperty?
class MyIntegerProperty(ndb.IntegerProperty):
def _validate(self, value):
if isinstance(value, basestring):
if len(value) == 0 and self._required is False:
return ?????????????????
try:
value = int(value)
except ValueError:
raise BadValueError(u'{0} must be a valid '
'integer'.format(self._name))
if value < 0:
raise BadValueError(u'{0} must be '
'positive'.format(self._name))
return value
class Account(ndb.Model):
posint = MyIntegerProperty()
_validate()、_to_base_type() 和 _from_base_type() 没有的东西 需要处理:
None:它们不会被 None 调用(如果它们返回 None,这 表示该值不需要转换)。
我目前正在做的是手动处理此案:
if len(request.form[name]) == 0:
delattr(entity, name)
else:
setattr(entity, name, request.form[name])
能比这更聪明吗?
【问题讨论】:
标签: google-app-engine google-cloud-datastore app-engine-ndb