Fix MissingGreenlet on subtask serialization
Chain second-level selectinload(ProjectTask.subtasks) on task create, update, and list endpoints. Pydantic's recursive ProjectTaskResponse schema accesses .subtasks on each subtask, which triggers lazy loading without eager load. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
ccfbf6df96
commit
81edf81d13
@ -128,7 +128,7 @@ async def get_project_tasks(
|
||||
|
||||
query = (
|
||||
select(ProjectTask)
|
||||
.options(selectinload(ProjectTask.subtasks))
|
||||
.options(selectinload(ProjectTask.subtasks).selectinload(ProjectTask.subtasks))
|
||||
.where(
|
||||
ProjectTask.project_id == project_id,
|
||||
ProjectTask.parent_task_id.is_(None),
|
||||
@ -180,7 +180,7 @@ async def create_project_task(
|
||||
# Re-fetch with subtasks loaded
|
||||
query = (
|
||||
select(ProjectTask)
|
||||
.options(selectinload(ProjectTask.subtasks))
|
||||
.options(selectinload(ProjectTask.subtasks).selectinload(ProjectTask.subtasks))
|
||||
.where(ProjectTask.id == new_task.id)
|
||||
)
|
||||
result = await db.execute(query)
|
||||
@ -217,7 +217,7 @@ async def update_project_task(
|
||||
# Re-fetch with subtasks loaded
|
||||
query = (
|
||||
select(ProjectTask)
|
||||
.options(selectinload(ProjectTask.subtasks))
|
||||
.options(selectinload(ProjectTask.subtasks).selectinload(ProjectTask.subtasks))
|
||||
.where(ProjectTask.id == task_id)
|
||||
)
|
||||
result = await db.execute(query)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user