Django-模型 - 递归检索叶子节点的父母



我的用户模型类定义如下:

class CustomUser(models.Model):
    user = models.OneToOneField(User)
    slug = models.SlugField(max_length=35, unique=True,help_text="URI dell'utente che appare sul browser")
    team = models.CharField(max_length=100, null=False, verbose_name="Team")
    area = models.CharField(max_length=100, null=False, verbose_name="Area")
    line_manager = models.ForeignKey('self', null=True, blank=True,related_name='parent')

我想检索自定义者的所有line_manager。假设我有:

A
-B 
 -C

其中c是叶子和b,而a是我要检索的值。我该如何在django?

我尚未对此进行测试,但应该起作用:

class CustomUser(models.Model):
    user = models.OneToOneField(User)
    slug = models.SlugField(max_length=35, unique=True,help_text="URI dell'utente che appare sul browser")
    team = models.CharField(max_length=100, null=False, verbose_name="Team")
    area = models.CharField(max_length=100, null=False, verbose_name="Area")
    line_manager = models.ForeignKey('self', null=True, blank=True,related_name='parent')
    def get_linemanagers(self):
        if self.line_manager is None:
            return CustomUser.objects.none()
        return CustomUser.objects.filter(pk=self.line_manager.pk) | self.line_manager. get_linemanagers()

希望它有帮助。

最新更新