Как вы проверяете пустую строку поля формы ''
, чтобы назначить 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, это означает, что значение не нуждается в преобразовании).
Что я сейчас делаю, это ручная обработка дела:
if len(request.form[name]) == 0:
delattr(entity, name)
else:
setattr(entity, name, request.form[name])
может ли он быть умнее этого?