fix: update模板空值处理 - 空字段跳过验证和更新

- 空字符串/None/NaN/null字段从ns中删除(除id外)
- 验证规则跳过空值(Update时空=未修改)
- 避免sor.U()用空值覆盖现有数据
This commit is contained in:
Hermes Agent 2026-06-24 17:26:30 +08:00
parent 1d0a187fca
commit 981da3d1e5

View File

@ -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)