def update(self, **kwargs):
''' validates the given data against this object's rules and then
updates '''
redis = type(self).get_redis()
errors = ValidationErrors()
for fieldname, field in self.proxy:
if not field.fillable:
continue
given = kwargs.get(fieldname)
if given is None:
continue
try:
value = field.validate(kwargs.get(fieldname), redis)
except BadField as e:
errors.append(e)
continue
setattr(
self,
fieldname,
value
)
if errors.has_errors():
raise errors
return self.save()
评论列表
文章目录