首页 > 解决方案 > 一个协程在等待之后返回一个协程

问题描述

我正在使用 ASGI 服务器(改编本教程)在 django 上为 fastAPI 编写测试。我的 fastAPI 方面的测试不断返回错误,我试图修复它是徒劳的。

我的需要是创建一个用户来测试 API。

@sync_to_async
def _create_user(self, username, email):
    try:
        return User.objects.create(username=username, email=email)
    except:
        return None

async def setUp(self):
    task = asyncio.create_task(self._create_user(username="user", email="email@email.com"))
    self.user = await task

运行这个测试,结果证明这self.user是一个协程,无法访问我期望的属性。

如何解决这个问题?

更新

删除了_create_user(self, username, email).

标签: pythondjangoasync-awaitfastapi

解决方案


根据文档https://docs.djangoproject.com/en/3.1/topics/async/#asgiref.sync.sync_to_async 装饰器 sync_to_async 应该装饰同步功能。(见示例)


推荐阅读