TypeError: 'ManyRelatedManager' object is not iterable我在 Django 3.0 中遇到错误这是我的问题:我必须Collection与模型Element建立关系ManyToMany。这是模型(我显然省略了与问题无关的所有其他属性和方法):class Collection(models.Models): elements = models.ManyToManyField(Element, related_name="collections") @proprety def total_elements_value(self): total = 0 for element in self.elements.all(): # The problem is on this line ! total += element.total_value return totalclass Element(models.Models): value1 = models.IntegerField() value2 = models.IntegerField() @proprety def total_value(self): return self.value1 + self.value2但是当我尝试调用 Collection.total_elements_value 属性时,出现了这个错误:TypeError: 'ManyRelatedManager' 对象不可迭代我不明白。self.elements.all() 返回一个列表作为查询集,所以它应该是可迭代的,不是吗?当我在 python shell 中尝试这个时,它工作正常:c = Collection.objects.all()[0]total = 0for element in c.elements.all(): total += element.total_valuereturn total # Works但不是当我打电话给物业时:c = Collection.objects.all()[0]c.total_elements_value # Throws the error我想知道如何解决这个问题,但更重要的是,了解为什么这不起作用。感谢您的帮助。
添加回答
举报
0/150
提交
取消