Django通道2异步检索并将数据保存到数据库

时间:2019-04-30 17:39:30

标签: python django-channels

我正在尝试从数据库中异步获取对象,对其进行更新,然后使用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 或根本不保存数据。

0 个答案:

没有答案