本文介绍 django.db.models.functions.Coalesce
的用法。
声明
class Coalesce(*expressions, **extra)
接受至少两个字段名称或表达式的列表并返回第一个非空值(请注意,空字符串不被视为空值)。每个参数必须是相似的类型,因此混合文本和数字将导致数据库错误。
使用示例:
>>> # Get a screen name from least to most public
>>> from django.db.models import Sum
>>> from django.db.models.functions import Coalesce
>>> Author.objects.create(name='Margaret Smith', goes_by='Maggie')
>>> author = Author.objects.annotate(
... screen_name=Coalesce('alias', 'goes_by', 'name')).get()
>>> print(author.screen_name)
Maggie
>>> # Prevent an aggregate Sum() from returning None
>>> # The aggregate default argument uses Coalesce() under the hood.
>>> aggregated = Author.objects.aggregate(
... combined_age=Sum('age'),
... combined_age_default=Sum('age', default=0),
... combined_age_coalesce=Coalesce(Sum('age'), 0),
... )
>>> print(aggregated['combined_age'])
None
>>> print(aggregated['combined_age_default'])
0
>>> print(aggregated['combined_age_coalesce'])
0
警告
传递给 MySQL 上的 Coalesce
的 Python 值可能会转换为不正确的类型,除非显式转换为正确的数据库类型:
>>> from django.db.models import DateTimeField
>>> from django.db.models.functions import Cast, Coalesce
>>> from django.utils import timezone
>>> now = timezone.now()
>>> Coalesce('updated', Cast(now, DateTimeField()))
相关用法
- Python Django ContentTypeManager用法及代码示例
- Python Condition release()用法及代码示例
- Python Collections.UserString用法及代码示例
- Python Condition notify()用法及代码示例
- Python Django ContextMixin.get_context_data用法及代码示例
- Python Condition wait()用法及代码示例
- Python Django Cot用法及代码示例
- Python Collections.UserDict用法及代码示例
- Python Django CoordTransform用法及代码示例
- Python Collections.UserList用法及代码示例
- Python Condition acquire()用法及代码示例
- Python Django ContentFile用法及代码示例
- Python Django Collate用法及代码示例
- Python Condition notify_all()用法及代码示例
- Python Django ComboField.fields用法及代码示例
- Python Django Concat用法及代码示例
- Python Django Cos用法及代码示例
- Python Django ContextMixin.extra_context用法及代码示例
- Python Tableau CSVRequestOptions用法及代码示例
- Python Calendar itermonthdays2()用法及代码示例
- Python Calendar monthdatescalendar()用法及代码示例
- Python CSV转JSON用法及代码示例
- Python Django CustomUserManager.create_user用法及代码示例
- Python Calendar itermonthdates()用法及代码示例
- Python Calendar iterweekdays()用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.functions.Coalesce。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。