Django异步更新多对多字段报错:TypeError问题求助
问题原因与解决方法
错误出在你直接用await调用了aadd方法——从代码写法判断你用的是Tortoise-ORM,这个ORM中aadd返回的是异步生成器,并非可直接await的对象,所以会抛出'async_generator' object is not iterable的错误。
你需要通过遍历异步生成器来完成添加操作,修改后的代码如下:
async def get_last_message_id() -> int: last_message = await Message.objects.all().alast() if last_message: # 遍历异步生成器执行添加逻辑 async for _ in last_message.read_by.aadd(request.user): pass return last_message.id if last_message else 0
如果需要批量添加多个用户,直接把多个对象传入aadd,同样用async for遍历即可。
内容的提问来源于stack exchange,提问作者OhMad
相关产品推荐
相关产品推荐

