diff --git a/frappe/custom/doctype/custom_field/custom_field.py b/frappe/custom/doctype/custom_field/custom_field.py index 1f2445eb13..dbab4eadcb 100644 --- a/frappe/custom/doctype/custom_field/custom_field.py +++ b/frappe/custom/doctype/custom_field/custom_field.py @@ -14,14 +14,17 @@ class CustomField(Document): self.name = self.dt + "-" + self.fieldname def set_fieldname(self): - if self.fieldtype in ["Section Break", "Column Break"]: - self.fieldname = self.fieldtype.lower().replace(" ","_") + "_" + str(self.idx) if not self.fieldname: - if not self.label: - frappe.throw(_("Label is mandatory")) + label = self.label + if not label: + if self.fieldtype in ["Section Break", "Column Break"]: + label = self.fieldtype + "_" + str(self.idx) + else: + frappe.throw(_("Label is mandatory")) + # remove special characters from fieldname self.fieldname = "".join(filter(lambda x: x.isdigit() or x.isalpha() or '_', - cstr(self.label).lower().replace(' ','_'))) + cstr(label).replace(' ','_'))) # fieldnames should be lowercase self.fieldname = self.fieldname.lower() @@ -130,4 +133,4 @@ def create_custom_fields(custom_fields): @frappe.whitelist() def add_custom_field(doctype, df): df = json.loads(df) - return create_custom_field(doctype, df) \ No newline at end of file + return create_custom_field(doctype, df)