协程等待后返回协程

时间:2020-09-14 18:36:36

标签: python django async-await fastapi

我正在使用ASGI服务器在django上为fastAPI编写测试(已对此tutorial进行了修改)。我在测试的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)的异步。

1 个答案:

答案 0 :(得分:0)

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