首页 > 解决方案 > Django优化递归查询

问题描述

我有这个 Django 模型:

class Employee(models.Model):
    manager = models.ForeignKey('self', related_name='subordinates', on_delete=models.PROTECT, null=True, blank=True, default=None)
    is_admin_manager = models.BooleanField(default=False)
    ****

另外,我有这个递归函数,它调用 DRF 序列化程序中员工的每个实例:

    def _get_admin_manager(self, obj):
    if not obj:
        return None
    if obj.is_admin_manager:
        return obj
    return self._get_admin_manager(obj.manager)

问题是,垂直层次结构越复杂,对 DB 的请求就越多。有没有办法优化这个?

标签: sqldjangopostgresqloptimization

解决方案


推荐阅读