Fixed inconsistency handling None values field attrs

fixes hmarr/mongoengine#505
This commit is contained in:
Ross Lawley 2012-06-19 11:22:12 +01:00
parent 3d0d2f48ad
commit 9fecf2b303
4 changed files with 2 additions and 9 deletions

View File

@ -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

View File

@ -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)

View File

@ -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):

View File

@ -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)