瀏覽代碼

Escape name in sql query

version-14
Faris Ansari 7 年之前
父節點
當前提交
ad412de054
共有 1 個文件被更改,包括 4 次插入1 次删除
  1. +4
    -1
      frappe/model/naming.py

+ 4
- 1
frappe/model/naming.py 查看文件

@@ -199,11 +199,14 @@ def _set_amended_name(doc):

def append_number_if_name_exists(doctype, name, fieldname='name', separator='-'):
if frappe.db.exists(doctype, name):
# should be escaped 2 times since
# python string will parse the first escape
escaped_name = re.escape(re.escape(name))
last = frappe.db.sql("""select name from `tab{doctype}`
where {fieldname} regexp '^{name}{separator}[[:digit:]]+'
order by length({fieldname}) desc,
{fieldname} desc limit 1""".format(doctype=doctype,
name=name, fieldname=fieldname, separator=separator))
name=escaped_name, fieldname=fieldname, separator=separator), debug=1)

if last:
count = str(cint(last[0][0].rsplit("-", 1)[1]) + 1)


Loading…
取消
儲存