我已经创建了一个模型,并且正在为它呈现默认/未修改的模型表单.仅此一项就生成了64个SQL查询,因为它有相当多的外键,而这些外键又有更多的外键.

是否可以强制将其设置为always(默认情况下),每次退回其中一个型号时执行select_related

推荐答案

您可以创建一个自定义管理器,只需覆盖get_queryset,它就可以应用于所有地方.例如:

class MyManager(models.Manager):
    def get_queryset(self):
        return super(MyManager, self).get_queryset().select_related('foo', 'bar')

(在Django 1.6之前,是get_query_set).

Django相关问答推荐

使用django直接计算geohash而不创建模型

Django ORM Groupby

Django OneToOneFieldto抽象对象

如何在Django表单中传递self.请求数据?

如何在 Fargate 容器中运行的 Django 中使用 AWS SES?

Django rest framework, AttributeError: 'str' object has no attribute 'data' 无法使用表单上传图片

如何将 select_related 应用于 Django 中的 m2m 关系的对象?

使用django提交后如何保留html表单数据?

为什么 django 不能相互识别 2 个路径转换器?

如何让 Django 在模板更改时重新启动运行服务器?

django REST 框架 - 嵌套 ModelSerializer 的有限查询集?

如何获得用户权限?

有没有办法将变量传递给 Django 中的 extended模板?

如何在终端中切换 Python 版本?

如何获取 Django 模型来自的应用程序?

Django 向用户推送 HTTP 响应

has_object_permission 和 has_permission 有什么区别?

Django模板转义

如何测试 Django QuerySets 是否相等?

运行单元测试时禁用 Django South?