小编Ars*_*oda的帖子

Django 在带有 @database_sync_to_async 装饰器的函数上等待以获取多个对象会引发错误

我正在集成 django 通道以实现异步功能。我正在尝试使用函数上的等待来获取用户模型的多个对象。

消费者.py

class TeamConsumer(AsyncConsumer):
    async def websocket_connect(self, event):
        await self.send({
                "type":"websocket.accept"
        })

    async def websocket_receive(self, event):
       o_user = await self.users()
       print(o_user)

    @database_sync_to_async
    def users(self):
        return UserModel.objects.all()
Run Code Online (Sandbox Code Playgroud)

尝试从上述代码中获取用户会导致错误“您无法从异步上下文中调用它 - 使用线程或sync_to_async。”

但是,如果我使用“UserModel.objects.all().first()”获取单个对象,则一切正常。

django django-channels asgi

4
推荐指数
1
解决办法
3837
查看次数

标签 统计

asgi ×1

django ×1

django-channels ×1