Merge branch 'master' of http://github.com/danielhasselrot/mongoengine into v0.4
Conflicts: mongoengine/fields.py
This commit is contained in:
commit
f4711699e4
@ -410,11 +410,18 @@ class BaseDocument(object):
|
|||||||
value = getattr(self, field_name, None)
|
value = getattr(self, field_name, None)
|
||||||
if value is not None:
|
if value is not None:
|
||||||
data[field.db_field] = field.to_mongo(value)
|
data[field.db_field] = field.to_mongo(value)
|
||||||
|
else:
|
||||||
|
data[field.db_field] = None
|
||||||
# Only add _cls and _types if allow_inheritance is not False
|
# Only add _cls and _types if allow_inheritance is not False
|
||||||
if not (hasattr(self, '_meta') and
|
if not (hasattr(self, '_meta') and
|
||||||
self._meta.get('allow_inheritance', True) == False):
|
self._meta.get('allow_inheritance', True) == False):
|
||||||
data['_cls'] = self._class_name
|
data['_cls'] = self._class_name
|
||||||
data['_types'] = self._superclasses.keys() + [self._class_name]
|
data['_types'] = self._superclasses.keys() + [self._class_name]
|
||||||
|
try:
|
||||||
|
if not data['_id']:
|
||||||
|
del data['_id']
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
return data
|
return data
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
@ -446,7 +453,8 @@ class BaseDocument(object):
|
|||||||
|
|
||||||
for field_name, field in cls._fields.items():
|
for field_name, field in cls._fields.items():
|
||||||
if field.db_field in data:
|
if field.db_field in data:
|
||||||
data[field_name] = field.to_python(data[field.db_field])
|
value = data[field.db_field]
|
||||||
|
data[field_name] = value if value is None else field.to_python(value)
|
||||||
|
|
||||||
obj = cls(**data)
|
obj = cls(**data)
|
||||||
obj._present_fields = present_fields
|
obj._present_fields = present_fields
|
||||||
|
Loading…
x
Reference in New Issue
Block a user