Django Async Модель Сохранить()
Я преобразовываю свои обычные представления в асинхронные представления из-за того, что запросы запросов блокируют все мои потоки. На данный момент я решил большинство своих проблем, кроме одной. Как асинхронно сохранить модель?
async def dashboardAddChart(request, rowId):
row = (await sync_to_async(list)(DashboardRow.objects.filter(pk=rowId).select_related('dashboard__site', 'dashboard__theme')))[0]
chart = DashboardChart(dashboard=row.dashboard, dashboardRow=row)
if row.dashboard.theme is not None:
dashboardThemes.applyThemeToChart(chart)
chart.save()
chartData = await getChartData(chart.pk)
Я пробовал множество вещей с chart.save(), включая:
await sync_to_async(chart.save)
t = asyncio.ensure_future(sync_to_async(chart.save))
await asyncio.gather(t)
Но у меня не получается.
Любая помощь будет оценена по достоинству!
await sync_to_async(chart.save)
должно быть
await sync_to_async(chart.save)()
Функция sync_to_async
оборачивает chart.save
и возвращает ее асинхронную версию, которую затем все равно нужно вызвать для выполнения.