刚刚在django docs人中遇到这个

调用None()将创建从不返回任何对象的查询集 并且在访问结果时不会执行任何查询.a qs.one() queryset是EmptyQuerySet的实例.

我构建了很多CRUD应用程序(令人惊讶),我想不出哪种情况下我需要使用none()个.

为什么要返回一个空的QuerySet?

推荐答案

通常在需要提供QuerySet,但没有提供的情况下-例如调用方法或提供给模板.

优点是,如果你know没有结果(或不想要结果),而你仍然need个,none()个不会命中数据库.

对于一个不现实的例子,假设您有一个API,可以在其中查询您的权限.如果帐户尚未确认,因为您已经有了Account对象,并且可以看到account.is_activatedFalse,那么只需使用Permission.objects.none()就可以跳过判断数据库的权限

Django相关问答推荐

APIView查询未返回任何结果

从url参数过滤的Django日期范围返回空查询集

django.template.response.ContentNotRenderedError: 必须渲染响应内容才能迭代

在 django 中使用自定义 url 转换器传递 url 参数

在用例图中建模前端和后端

使用 Django 一次更新多条记录

Playframework 和 Django

在 GoDaddy 上安装 django 站点

DeleteView 中的success_message 未显示

InvalidBasesError:无法解析 [] 的基础

Django SMTPAuthenticationError

用户组和权限

django npm 和 node 包架构

可以在 Django 抽象模型中使用多重继承吗?

Django post_save 在不覆盖模型 save() 的情况下防止递归

Django 和 VirtualEnv 开发/部署最佳实践

我应该如何在我的模型中使用 DurationField?

用于创建和更新的基于 Django 类的视图

Django 将多个模型传递给一个模板

如何使用 Django/nginx 部署仅限 HTTPS 的站点?