fix recursion
This commit is contained in:
parent
a3238bba0c
commit
5828e45e35
|
@ -32,10 +32,10 @@ class RecordTable(table.Table):
|
|||
last_insert_id = super().insert(dict(doc))
|
||||
return self.get(doc_id=last_insert_id)
|
||||
|
||||
def get(self, doc_id: int):
|
||||
def get(self, doc_id: int, recurse: bool = True):
|
||||
document = super().get(doc_id=doc_id)
|
||||
if document:
|
||||
return document.deserialize(self._db)
|
||||
return document.deserialize(self._db, recurse=recurse)
|
||||
|
||||
def search(self, *args, recurse: bool = True, **kwargs) -> List[Record]:
|
||||
results = super().search(*args, **kwargs)
|
||||
|
|
|
@ -118,6 +118,8 @@ class Collection(Field):
|
|||
Recursively deserialize the objects in this collection
|
||||
"""
|
||||
vals = []
|
||||
if not recurse:
|
||||
return rec
|
||||
for member in rec:
|
||||
pt, puid = member.split("::")
|
||||
vals.append(db.table(pt).search(where("uid") == puid)[0])
|
||||
|
|
|
@ -95,3 +95,7 @@ def test_search(db):
|
|||
assert kirk in crew.members
|
||||
assert bones in crew.members
|
||||
assert ricky in crew.members
|
||||
|
||||
Group = Query()
|
||||
crew = db.Group.search(Group.name == "Crew", recurse=False)
|
||||
assert f"User::{kirk.uid}" in crew[0].members
|
||||
|
|
Loading…
Reference in New Issue
Block a user