我见过这样的问题:

user = User.objects.all() or User.objects.filter(username = username)

将提取表的所有列,即使我们不需要所有列.我们有没有更好的方式来编写数据库查询?如果是,为什么我们不经常看到这些代码呢?

推荐答案

QuerySet.only()QuerySet.defer()可用于细化ORM将提取哪些字段,将其他字段推迟到模型上的适当属性被访问.

Django相关问答推荐

Django、htmx删除记录并更新

如何在Django中获取标记<;输入>;的';值';属性?

Django Admin中显示的DateField下面的小提示是什么?

Django通用列表视图与多查询搜索

只从查询集中获取某种类型的最新项目

如何将数据(具体归档)从views.py 传递到models.py

如何将 ManyToManyField 与另一个 ManyToManyField 进行比较

django 管理员登录突然要求 csrf 令牌

在 django/python 上访问请求标头

Django 模板上的 URL 编码

Django:通过manage.py使用服务器和gunicorn等其他服务器之间的区别.哪个更好?

如何在 django 中处理这种竞争条件?

Django:在模型管理器中获取模型的表名?

Django JavaScript 文件

如何在不发送信号的情况下保存模型?

Python/Django - 避免在源代码中保存密码

Django Rest 框架 ImageField

Django中reverse()和reverse_lazy()的区别

在 django admin 中控制 TextArea 小部件的大小

Django将整数模型字段的范围设置为约束