36

Djangoのクエリセットから直接「説明」を実行するのは簡単なようですが、その方法について明らかなことは何も見られず、「説明」はドキュメントで検索するのが難しいものです。

4

3 に答える 3

36

さて、ツールバー以外には何もないように見えるので、クエリセットのexplain()メソッドを提供するために独自の mixin を作成しました。

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,)

うまくいけば、これは他の人に役立ちます。

于 2012-07-13T20:57:40.060 に答える
27

QuerySet.explain()は、Django 2.1.0 以降で利用可能になり、クエリを説明する公式の方法になりました。

于 2018-10-09T20:51:57.403 に答える