ns = params_kw.copy() for k,v in ns.items(): if v == 'NaN' or v == 'null': ns[k] = None id = params_kw.id if not id or len(id) > 32: id = uuid() ns['id'] = id db = DBPools() dbname = get_module_dbname('pricing') async with db.sqlorContext(dbname) as sor: fs = await sor_get_spec_fields(sor, ns.id) if len(fs): ns1 = {k:ns[k] for k in fs} ns.spec_value = json.dumps(ns1) r = await sor.C('pricing_item', ns.copy()) return { "widgettype":"Message", "options":{ "user_data":ns, "cwidth":16, "cheight":9, "title":"Add Success", "timeout":3, "message":"ok" } } return { "widgettype":"Error", "options":{ "title":"Add Error", "cwidth":16, "cheight":9, "timeout":3, "message":"failed" } }