“缓存多个”;“自我”;Django中的关系

“缓存多个”;“自我”;Django中的关系,django,django-models,Django,Django Models,我有一个具有自参考多个字段的模型: class Suite(models.Model): suites = models.ManyToManyField("self", related_name="parents", summetrical=False ) 显示套件列表的当前用法是获取“master_套件”(父级为零的套件)列表,

我有一个具有自参考多个字段的模型:

class Suite(models.Model):
    suites = models.ManyToManyField("self", related_name="parents",
                                            summetrical=False
                                   )
显示套件列表的当前用法是获取“master_套件”(父级为零的套件)列表,并从递归执行“suite.subsuites.all()”的套件开始,直到所有套件都用完为止

当前的方法是为每个这样的套件生成一个数据库查询,我想向其中添加缓存

整个过程可以通过首先加载套件列表Suite.objects.all()完成;以及子套件列表:Suite.subsuites.through.all(),并使用这两个数据集构建树

我想将这个“逻辑”添加到ManyRelatedManager,缓存Suite.subsuites.through.all()结果,并在视图中的循环期间使用缓存


但是我没有办法设置一个我自己的定制ManyRelatedManager。。。我该怎么做呢?

我想你看错方向了。在这种情况下,您可能需要使用构造查询集、缓存它以及其他任何您想要的东西

用法,可以如下所示:

suite_tree = Suite.mymanager.construct_tree();

我认为你看错了方向。在这种情况下,您可能需要使用构造查询集、缓存它以及其他任何您想要的东西

用法,可以如下所示:

suite_tree = Suite.mymanager.construct_tree();