给定以下模型:
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:
它提供了操纵这种关系所需的一切,我已经在一些涉及与您类似的模型的项目中使用了它,并且使用起来非常简单。
如果您不想使用任何第三方应用程序,那么返回对象查询集的循环似乎是处理此问题的一种方法。