我有这个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创建更多请求。 有没有办法对此进行优化?