瀏覽代碼

fix: Skip data field validations for virtual field

version-14
Gavin D'souza 3 年之前
父節點
當前提交
4d00579667
共有 3 個文件被更改,包括 9 次插入3 次删除
  1. +3
    -0
      frappe/core/doctype/doctype/doctype.py
  2. +5
    -2
      frappe/model/base_document.py
  3. +1
    -1
      frappe/model/meta.py

+ 3
- 0
frappe/core/doctype/doctype/doctype.py 查看文件

@@ -1050,6 +1050,9 @@ def validate_fields(meta):
field.fetch_from = field.fetch_from.strip('\n').strip()

def validate_data_field_type(docfield):
if docfield.get("is_virtual"):
return

if docfield.fieldtype == "Data" and not (docfield.oldfieldtype and docfield.oldfieldtype != "Data"):
if docfield.options and (docfield.options not in data_field_options):
df_str = frappe.bold(_(docfield.label))


+ 5
- 2
frappe/model/base_document.py 查看文件

@@ -249,8 +249,11 @@ class BaseDocument(object):

if d[fieldname] is None:
if df.get("options"):
# d[fieldname] = frappe.safe_eval(df.get("options"), {**get_safe_globals, "doc": self})
d[fieldname] = frappe.safe_eval(df.get("options"), get_safe_globals(), {"doc": self})
d[fieldname] = frappe.safe_eval(
code=df.get("options"),
eval_globals=get_safe_globals(),
eval_locals={"doc": self},
)
else:
_val = getattr(self, fieldname, None)
if _val and not callable(_val):


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

@@ -444,7 +444,7 @@ class Meta(Document):
def get_fieldnames_with_value(self, with_field_meta=False):
def is_value_field(docfield):
return not (
docfield.is_virtual
docfield.get("is_virtual")
or docfield.fieldtype in no_value_fields
)



Loading…
取消
儲存