From 9fecf2b303c06e048dd8570c60604841552318ed Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Tue, 19 Jun 2012 11:22:12 +0100 Subject: [PATCH] Fixed inconsistency handling None values field attrs fixes hmarr/mongoengine#505 --- docs/changelog.rst | 1 + mongoengine/base.py | 7 ------- mongoengine/fields.py | 2 +- tests/test_fields.py | 1 - 4 files changed, 2 insertions(+), 9 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 0f0965ee..52098b03 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -4,6 +4,7 @@ Changelog Changes in 0.6.X ================ +- Fixed inconsistency handling None values field attrs - Fixed map_field embedded db_field issue - Fixed .save() _delta issue with DbRefs - Fixed Django TestCase diff --git a/mongoengine/base.py b/mongoengine/base.py index a1364267..be1fb6d6 100644 --- a/mongoengine/base.py +++ b/mongoengine/base.py @@ -833,13 +833,6 @@ class BaseDocument(object): if hasattr(self, '_changed_fields'): self._mark_as_changed(name) - # Handle None values for required fields - if value is None and name in getattr(self, '_fields', {}): - self._data[name] = value - if hasattr(self, '_changed_fields'): - self._mark_as_changed(name) - return - if not self._created and name in self._meta.get('shard_key', tuple()): from queryset import OperationError raise OperationError("Shard Keys are immutable. Tried to update %s" % name) diff --git a/mongoengine/fields.py b/mongoengine/fields.py index ec66789c..cefbbab9 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -369,7 +369,7 @@ class ComplexDateTimeField(StringField): return self._convert_from_string(data) def __set__(self, instance, value): - value = self._convert_from_datetime(value) + value = self._convert_from_datetime(value) if value else value return super(ComplexDateTimeField, self).__set__(instance, value) def validate(self, value): diff --git a/tests/test_fields.py b/tests/test_fields.py index 04d5a34d..68c79b5c 100644 --- a/tests/test_fields.py +++ b/tests/test_fields.py @@ -82,7 +82,6 @@ class FieldTest(unittest.TestCase): # Retrive data from db and verify it. ret = HandleNoneFields.objects.all()[0] - self.assertEqual(ret.str_fld, None) self.assertEqual(ret.int_fld, None) self.assertEqual(ret.flt_fld, None)