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组得到all blocks.我编写了下一个递归函数:

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()

Django相关问答推荐

HTMX中的响应未作为附件处理(即文件未下载)

如何使用Django';S生成的字段来统计相关对象?

管理器不能通过对象上的对象实例访问.保存()

如何在Django CMS中更新上下文

Django Admin:在一个部分中同时显示多个应用程序?

DjangoAdmin与外部数据库的模型无法保存或过滤

Django ImproperlyConfigured: AUTH_USER_MODEL指向尚未安装的模型'users.User'

django.template.response.ContentNotRenderedError: 必须渲染响应内容才能迭代

Django rest framework, AttributeError: 'str' object has no attribute 'data' 无法使用表单上传图片

int_list_validator在 Django 表单中不起作用

在 Django Admin change_list 视图中更改 list_editable 字段时保存 Django 模型

超级用户在基于类的视图中进行身份验证

如何根据查询集中的条件返回多个聚合?

遍历django模板中的外键相关表

Django中基于令牌的身份验证

Django:在模板中显示当前语言环境

在 django web 应用程序中,如何给用户自己的子域?

Django admin:我可以定义字段顺序吗?

Django post_save 在不覆盖模型 save() 的情况下防止递归

如何将 ManyToManyField 呈现为复选框?