同步到异步Django ORM模型迭代器

2024-03-29 06:45:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类User,它需要在异步IO脚本中迭代

使用__aiter__User.objcets.iterator()转换为异步迭代器的正确方法是什么


Tags: 方法io脚本useriteratoraiterobjcets
1条回答
网友
1楼 · 发布于 2024-03-29 06:45:49

您可以使用async generator创建这样的迭代器(它具有aiter函数):

async def sync_to_async(iterator):
    for i in iterator:
        yield i

也可以从控制台输出

>>> it = Chat.objects.iterator()
>>> ait = sync_to_async(it)
>>> dir(ait)
['__aiter__', '__anext__', '__class__', '__del__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'aclose', 'ag_await', 'ag_code', 'ag_frame', 'ag_running', 'asend', 'athrow']

相关问题 更多 >