Django中的多级联接

我想知道是否有一种简单的方法可以在Django中获取模型(C)的父级(A),因为A与B有多对多的关系,而B与C有多对多的关系?

编辑:

class Project(models.Model):
   levels = models.ManyToManyField('Level',through="ProjectLevel",related_name='levels_project')

class Level(models.Model):
    areas = models.ManyToManyField('Area',through="LevelArea",related_name='areas_level')

class Area(models.Model):
    name = models.CharField(max_length=50)
uhkul 回答:Django中的多级联接

我还没有尝试过,但是我认为以下代码可能有效。手指交叉:)

  1. 对于给定的项目,您将获得所有相关级别的查询集
  2. 您可以遍历此查询集,通过为每个级别附加所有区域来构建区域查询集 这样,您应该获得给定项目的所有“叶子”区域。
p = Project.objects.get(pk=1) # Get a specific project,change the query accordingly

levels = p.levels.all()
areas = None

for level in levels:
    areas = areas | level.areas.all()

本文链接:https://www.f2er.com/3135128.html

大家都在问