Fixed inconsistency handling None values field attrs
fixes hmarr/mongoengine#505
This commit is contained in:
parent
3d0d2f48ad
commit
9fecf2b303
@ -4,6 +4,7 @@ Changelog
|
|||||||
|
|
||||||
Changes in 0.6.X
|
Changes in 0.6.X
|
||||||
================
|
================
|
||||||
|
- Fixed inconsistency handling None values field attrs
|
||||||
- Fixed map_field embedded db_field issue
|
- Fixed map_field embedded db_field issue
|
||||||
- Fixed .save() _delta issue with DbRefs
|
- Fixed .save() _delta issue with DbRefs
|
||||||
- Fixed Django TestCase
|
- Fixed Django TestCase
|
||||||
|
@ -833,13 +833,6 @@ class BaseDocument(object):
|
|||||||
if hasattr(self, '_changed_fields'):
|
if hasattr(self, '_changed_fields'):
|
||||||
self._mark_as_changed(name)
|
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()):
|
if not self._created and name in self._meta.get('shard_key', tuple()):
|
||||||
from queryset import OperationError
|
from queryset import OperationError
|
||||||
raise OperationError("Shard Keys are immutable. Tried to update %s" % name)
|
raise OperationError("Shard Keys are immutable. Tried to update %s" % name)
|
||||||
|
@ -369,7 +369,7 @@ class ComplexDateTimeField(StringField):
|
|||||||
return self._convert_from_string(data)
|
return self._convert_from_string(data)
|
||||||
|
|
||||||
def __set__(self, instance, value):
|
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)
|
return super(ComplexDateTimeField, self).__set__(instance, value)
|
||||||
|
|
||||||
def validate(self, value):
|
def validate(self, value):
|
||||||
|
@ -82,7 +82,6 @@ class FieldTest(unittest.TestCase):
|
|||||||
|
|
||||||
# Retrive data from db and verify it.
|
# Retrive data from db and verify it.
|
||||||
ret = HandleNoneFields.objects.all()[0]
|
ret = HandleNoneFields.objects.all()[0]
|
||||||
|
|
||||||
self.assertEqual(ret.str_fld, None)
|
self.assertEqual(ret.str_fld, None)
|
||||||
self.assertEqual(ret.int_fld, None)
|
self.assertEqual(ret.int_fld, None)
|
||||||
self.assertEqual(ret.flt_fld, None)
|
self.assertEqual(ret.flt_fld, None)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user