TypeError:'RelatedManager'对象不可迭代

Django的

我有下一个型号:

class Group(models.Model): name = models.CharField(max_length=100) parent_group = models.ManyToManyField("self", blank=True) def __unicode__(self): return self.name class Block(models.Model): name = models.CharField(max_length=100) app = models.CharField(max_length=100) group = models.ForeignKey(Group) def __unicode__(self): return self.name 

比如块b1g1组。 通过它的名字,我想从组g1中获取所有块 。 我写了下一个recursion函数:

 def get_blocks(group): def get_needed_blocks(group): for block in group.block_set: blocks.append(block) if group.parent_group is not None: get_needed_blocks(group.parent_group) blocks = [] get_needed_blocks(group) return blocks 

b1.group.block_set返回给我RelatedManager对象,这是不可迭代的。

该怎么办? 怎么了?

尝试这个:

 block in group.block_set.all() 

Manager一样使用它。 如果你想要所有的对象,然后调用all()方法。