diff --git a/xls2ddl/tmpls.py b/xls2ddl/tmpls.py index 0b9f615..65e0e65 100644 --- a/xls2ddl/tmpls.py +++ b/xls2ddl/tmpls.py @@ -329,9 +329,12 @@ return { """ data_update_tmpl = """ ns = params_kw.copy() -for k,v in ns.items(): - if v == 'NaN' or v == 'null': - ns[k] = None +for k,v in list(ns.items()): + if v == 'NaN' or v == 'null' or v == '' or v is None: + if k != 'id': + del ns[k] + else: + ns[k] = None if v in ('NaN', 'null') else v {% if logined_userid %} userid = await get_user() if not userid: @@ -374,6 +377,9 @@ for _fname, _rules in _validation_rules.items(): \t_val = params_kw.get(_fname, '') \tif _val is None: _val = '' \t_val = str(_val) +\t# Update: skip validation if field is empty (not modified) +\tif not _val or _val.strip() == '': +\t\tcontinue \tfor _rule in _rules: \t\t_rt = _rule.get('type', '') \t\t_rm = _rule.get('message', _fname)