本文介绍了运行“解释”程序的简单方法在Django中的查询集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Django中直接从查询集运行解释似乎应该很容易,但是我看不出如何做到这一点的任何明显方法,并且解释是很难在其中搜索到的文档。

It seems like it should be easy to run "explain" directly off of a queryset in Django, but I don't see anything obvious for how to do it, and "explain" is a difficult thing to search for in the docs.

推荐答案

好吧,除了工具栏外似乎什么也没有,所以我写了自己的mixin给我一个 explain()方法查询我的查询集:

Well, there seems to be nothing out there except a toolbar so I wrote my own mixin to give me an explain() method on my querysets:

from django.db import connections
from django.db.models.query import QuerySet

class QuerySetExplainMixin:
    def explain(self):
        cursor = connections[self.db].cursor()
        cursor.execute('explain %s' % str(self.query))
        return cursor.fetchall()

QuerySet.__bases__ += (QuerySetExplainMixin,)

希望这对其他人有用。

这篇关于运行“解释”程序的简单方法在Django中的查询集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 06:42