我正在尝试从数据库中异步获取对象,对其进行更新,然后使用Django Channels 2将其保存。检索工作正常,但是保存时遇到了问题。
我已经尝试过
await database_sync_to_async(game.save)()
以及将实际的保存移动到另一种方法
@database_sync_to_async
def save(self, item):
item.save()
class GameController(AsyncWebsocketConsumer):
@property
@database_sync_to_async
def game(self):
return Game.objects.get(uuid=self.game_uuid)
async def save_connected(self):
game = await self.game
if not game.data:
game.data = {
'connected': False
}
else:
game.data['connected'] = True
await database_sync_to_async(game.save)()
但是我总是会收到此错误:Object of type coroutine is not JSON serializable
或根本不保存数据。