def xhr_update(self): sch = pysite.dd.build_schema(colander.MappingSchema, self.DD, fieldlist=self.EDIT_FIELDLIST) try: data = pysite.dd.deserialize(sch, self.request.POST) except colander.Invalid as exc: return {'status': False, 'msg': 'Errors', 'errors': exc.asdict()} try: vv = {} for k, v in data.items(): vv[k[self.PREFIXLEN:]] = v vv['id'] = int(self.request.POST['id']) vv['editor'] = self.request.user.uid vv['mtime'] = datetime.datetime.now() manager.update_domain(vv) return {'status': True, 'msg': 'Ok'} except (StatementError, NoResultFound, PySiteError) as exc: return {'status': False, 'msg': str(exc), 'errors': {}}