尝试这样做:
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/