django - ManyRelatedManager 对象不可迭代

标签 django

尝试这样做:

wishList = WishList.objects.get(pk=20)
matches = [val for val in Store.attribute_answers.all() if val in wishList.attribute_answers]

然后得到这个...

'ManyRelatedManager' object is not iterable

这两个字段都是多对多的,那么如何做到这一点呢?

最佳答案

尝试

matches = [val for val in Store.attribute_answers.all() if val in WishList.attribute_answers.all()]

请注意 WishList.attribute_answers.all() 末尾的括号。添加括号会调用 all 函数以返回一个可迭代对象。

如果您包含括号,那么您是在说“给我商店答案中的所有值,只要该值也在愿望 list 的答案中”。如果没有括号,您是在请求商店答案中的所有值,这些值也在 all 函数中,这是没有意义的。 all 函数不是可迭代的(它是一个返回可迭代的函数)

关于django - ManyRelatedManager 对象不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14920735/

相关文章:

django-南迁移顺序

python - 如何使用用户输入作为参数运行 .py 脚本

mysql - index_together 的顺序在 Django 模型中是否重要?

python - Django-Filters 空字符串查询参数导致验证错误

python - 如何使用默认属性向现有 Django 模型添加非空唯一值

javascript - json.dump 未将 python 列表转换为 JS 数组

python - 将 upload_to 函数与模型类关联的首选 pythonic 方式?

python - 使用 Django/South 重命名模型的最简单方法?

django-rest-framework 返回创建的对象但字段较少

python - Django 部署上的内部服务器错误