刚刚在django docs里遇到这个
Calling none() will create a queryset that never returns any objects
and no query will be executed when accessing the results. A qs.none()
queryset is an instance of EmptyQuerySet.
我构建了很多CRUD应用程序(令人惊讶),我想不出在什么情况下需要使用none()
。
为什么要返回空查询集?
Tags:
通常是在需要提供
QuerySet
的情况下,但是没有一个可以提供,例如调用方法或提供给模板。优点是,如果您知道没有结果(或者不想要结果),并且您仍然需要一个结果,那么
none()
将不会命中数据库。对于一个不现实的示例,假设您有一个API,可以在其中查询您的权限。如果帐户尚未确认,因为您已经拥有了
Account
对象,并且可以看到account.is_activated
是False
,您可以通过使用Permission.objects.none()
跳过检查数据库的权限如果希望附加到querysets,但希望空的querysets以 类似于我们实例化空列表的条件,空列表以开始,但逐渐地将有意义的值附加到空列表中 例子。。
get_me_queryset
几乎总是应该返回django.db.models.query.QuerySet
(因为良好的编程)的实例,而不是None
或[]
,否则它将在以后引入头痛。。这样,即使没有任何条件出现
True
,您的代码仍将保持完整。不再进行类型检查对于那些不了解
|
运算符用法的用户,请执行以下操作:它转化为:
queryset.none的另一个用途是,您不知道是否会有对象,但不希望引发错误。
示例:
相关问题 更多 >
编程相关推荐