我正在集成 django 通道以实现异步功能。我正在尝试使用函数上的等待来获取用户模型的多个对象。
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()”获取单个对象,则一切正常。