Django如何获取0而不是null

Posted

技术标签:

【中文标题】Django如何获取0而不是null【英文标题】:Django how to get 0 instead of null 【发布时间】:2022-01-16 21:50:07 【问题描述】:

我正在过滤一个查询集以获取访问者和综合浏览量的数量,但是当没有数据时它返回无。 在没有数据的情况下过滤查询集时如何得到0而不是None?

yesterday_visitors = queryset.filter(date__gte=yesterday, page=None).aggregate(Sum('visitors'))

yesterday_page_views = queryset.filter(date__gte=yesterday, page=None).aggregate(Sum('page_views')) ```

【问题讨论】:

这能回答你的问题吗? Retrieve the same values ​whose data is there or exists and not the rest.In django 我实际上想保留 None 值结果,但我希望它们为 0,所以它似乎 _is_null 在这里没有帮助 您可能正在寻找Coalesce,请参阅此答案:***.com/a/57444780/5520354 【参考方案1】:

我最终采用了另一种可能是最简单的方法,只需在末尾添加“或 0”,同时在“visitors”和“page_views”上使用 get __sum:

yesterday_visitors = queryset.filter(date__gte=yesterday, page=None).aggregate(Sum('visitors')).get('visitors__sum') or 0

yesterday_page_views = queryset.filter(date__gte=yesterday, page=None).aggregate(Sum('page_views')).get('page_views__sum') or 0

【讨论】:

以上是关于Django如何获取0而不是null的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 django rest 框架在模板中获取模型选择字段名称而不是 id

如何使用 Django 模型在 ExtJS 网格中获取外键值而不是键?

在grails中解析JSON时如何获取真正的空值而不是JSONObject.NULL值

Django ORM:如何根据所有记录中的列获取唯一记录(需要模型对象而不是特定值对象)

Django:如何获取当前 URL 标记名(用于分页)?

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