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值