From fc0e67023a0fc56b5dc8572e71759bd5d086f385 Mon Sep 17 00:00:00 2001 From: Harry Marr Date: Fri, 18 Dec 2009 13:40:33 +0000 Subject: [PATCH] Required fields may now use default values --- mongoengine/base.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mongoengine/base.py b/mongoengine/base.py index 61deb409..abfe05dd 100644 --- a/mongoengine/base.py +++ b/mongoengine/base.py @@ -166,10 +166,11 @@ class BaseDocument(object): if attr_name in values: setattr(self, attr_name, values.pop(attr_name)) else: - if attr_value.required: + # Use default value if present + value = getattr(self, attr_name, None) + if value is None and attr_value.required: raise ValidationError('Field "%s" is required' % attr_name) - # Use default value - setattr(self, attr_name, getattr(self, attr_name, None)) + setattr(self, attr_name, value) @classmethod def _get_subclasses(cls):