Django 模型 - 在表中获取与自身关系的后代



给定以下模型:

class Item(models.Model):
    name = models.CharField(max_length = 45)
    belongsTo = models.ManyToManyField("self", symmetrical=False, related_name='parentOf')
    def get_descendants(self):
        "Returns items descendants"
        pass

我将如何实现 get_descendants 函数以获得类似于以下内容的内容n后代:

Item.objects.filter(belongs_to=item).filter(belongs_to__belongs_to=item).filter(...) 
你可能

想看看Django-MPTT:http://django-mptt.github.io/django-mptt/overview.html 特别是它有的模型方法 http://django-mptt.github.io/django-mptt/models.html#mpttmodel-instance-methods:

提供了操纵这种关系所需的一切,我已经在一些涉及与您类似的模型的项目中使用了它,并且使用起来非常简单。

如果您不想使用任何第三方应用程序,那么返回对象查询集的循环似乎是处理此问题的一种方法。

最新更新