You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:23:29