From 33d1da9d431a30ba9ac37c7c0d5b67e5f0d6af14 Mon Sep 17 00:00:00 2001 From: Anand Doshi Date: Wed, 18 Jun 2014 12:48:25 +0530 Subject: [PATCH] dont_update_if_missing property, lets you skip fields for which you don't want missing values to be updated --- frappe/model/base_document.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frappe/model/base_document.py b/frappe/model/base_document.py index 667fe88df6..ef4e420798 100644 --- a/frappe/model/base_document.py +++ b/frappe/model/base_document.py @@ -13,6 +13,7 @@ class BaseDocument(object): def __init__(self, d): self.update(d) + self.dont_update_if_missing = [] @property def meta(self): @@ -42,7 +43,8 @@ class BaseDocument(object): if "doctype" in d: self.set("doctype", d.get("doctype")) for key, value in d.iteritems(): - if self.get(key) is None: + # dont_update_if_missing is a list of fieldnames, for which, you don't want to set default value + if (self.get(key) is None) and (value is not None) and (key not in self.dont_update_if_missing): self.set(key, value) def get_db_value(self, key):