fix recursion

This commit is contained in:
evilchili 2025-09-28 12:12:05 -07:00
parent a3238bba0c
commit 5828e45e35
3 changed files with 8 additions and 2 deletions

View File

@ -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)

View File

@ -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])

View File

@ -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