fix: update模板空值处理 - 空字段跳过验证和更新
- 空字符串/None/NaN/null字段从ns中删除(除id外) - 验证规则跳过空值(Update时空=未修改) - 避免sor.U()用空值覆盖现有数据
This commit is contained in:
parent
1d0a187fca
commit
981da3d1e5
@ -329,9 +329,12 @@ return {
|
|||||||
"""
|
"""
|
||||||
data_update_tmpl = """
|
data_update_tmpl = """
|
||||||
ns = params_kw.copy()
|
ns = params_kw.copy()
|
||||||
for k,v in ns.items():
|
for k,v in list(ns.items()):
|
||||||
if v == 'NaN' or v == 'null':
|
if v == 'NaN' or v == 'null' or v == '' or v is None:
|
||||||
ns[k] = None
|
if k != 'id':
|
||||||
|
del ns[k]
|
||||||
|
else:
|
||||||
|
ns[k] = None if v in ('NaN', 'null') else v
|
||||||
{% if logined_userid %}
|
{% if logined_userid %}
|
||||||
userid = await get_user()
|
userid = await get_user()
|
||||||
if not userid:
|
if not userid:
|
||||||
@ -374,6 +377,9 @@ for _fname, _rules in _validation_rules.items():
|
|||||||
\t_val = params_kw.get(_fname, '')
|
\t_val = params_kw.get(_fname, '')
|
||||||
\tif _val is None: _val = ''
|
\tif _val is None: _val = ''
|
||||||
\t_val = str(_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:
|
\tfor _rule in _rules:
|
||||||
\t\t_rt = _rule.get('type', '')
|
\t\t_rt = _rule.get('type', '')
|
||||||
\t\t_rm = _rule.get('message', _fname)
|
\t\t_rm = _rule.get('message', _fname)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user