fix for reloading of strict with special fields
This commit is contained in:
parent
2c282f9550
commit
fb4e9c3772
@ -595,6 +595,11 @@ class Document(BaseDocument):
|
|||||||
if not fields or field in fields:
|
if not fields or field in fields:
|
||||||
try:
|
try:
|
||||||
setattr(self, field, self._reload(field, obj[field]))
|
setattr(self, field, self._reload(field, obj[field]))
|
||||||
|
except (KeyError, AttributeError):
|
||||||
|
try:
|
||||||
|
# If field is a special field, e.g. items is stored as _reserved_items,
|
||||||
|
# an KeyError is thrown. So try to retrieve the field from _data
|
||||||
|
setattr(self, field, self._reload(field, obj._data.get(field)))
|
||||||
except KeyError:
|
except KeyError:
|
||||||
# If field is removed from the database while the object
|
# If field is removed from the database while the object
|
||||||
# is in memory, a reload would cause a KeyError
|
# is in memory, a reload would cause a KeyError
|
||||||
|
Loading…
x
Reference in New Issue
Block a user