Fixed weakref being valid after reload (#374)
This commit is contained in:
parent
e6374ab425
commit
9867e918fa
@ -4,6 +4,7 @@ Changelog
|
||||
|
||||
Changes in 0.8.3
|
||||
================
|
||||
- Fixed weakref being valid after reload (#374)
|
||||
- Fixed queryset.get() respecting no_dereference (#373)
|
||||
- Added full_result kwarg to update (#380)
|
||||
|
||||
|
@ -480,6 +480,7 @@ class Document(BaseDocument):
|
||||
value = [self._reload(key, v) for v in value]
|
||||
value = BaseList(value, self, key)
|
||||
elif isinstance(value, (EmbeddedDocument, DynamicEmbeddedDocument)):
|
||||
value._instance = None
|
||||
value._changed_fields = []
|
||||
return value
|
||||
|
||||
|
@ -1613,6 +1613,32 @@ class QuerySetTest(unittest.TestCase):
|
||||
self.assertEqual(message.authors[1].name, "Ross")
|
||||
self.assertEqual(message.authors[2].name, "Adam")
|
||||
|
||||
def test_reload_embedded_docs_instance(self):
|
||||
|
||||
class SubDoc(EmbeddedDocument):
|
||||
val = IntField()
|
||||
|
||||
class Doc(Document):
|
||||
embedded = EmbeddedDocumentField(SubDoc)
|
||||
|
||||
doc = Doc(embedded=SubDoc(val=0)).save()
|
||||
doc.reload()
|
||||
|
||||
self.assertEqual(doc.pk, doc.embedded._instance.pk)
|
||||
|
||||
def test_reload_list_embedded_docs_instance(self):
|
||||
|
||||
class SubDoc(EmbeddedDocument):
|
||||
val = IntField()
|
||||
|
||||
class Doc(Document):
|
||||
embedded = ListField(EmbeddedDocumentField(SubDoc))
|
||||
|
||||
doc = Doc(embedded=[SubDoc(val=0)]).save()
|
||||
doc.reload()
|
||||
|
||||
self.assertEqual(doc.pk, doc.embedded[0]._instance.pk)
|
||||
|
||||
def test_order_by(self):
|
||||
"""Ensure that QuerySets may be ordered.
|
||||
"""
|
||||
|
Loading…
x
Reference in New Issue
Block a user