当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python Django JSONBAgg.ordering用法及代码示例


本文介绍django.contrib.postgres.aggregates.JSONBAgg.ordering的用法。

声明

ordering
Django 3.2 中的新函数。

字段名称的可选字符串(带有表示降序的可选 "-" 前缀)或指定结果列表中元素顺序的表达式(或元组或字符串和/或表达式列表)。

示例与 ArrayAgg.ordering 相同。

使用示例:

class Room(models.Model):
    number = models.IntegerField(unique=True)

class HotelReservation(model.Model):
    room = models.ForeignKey('Room', on_delete=models.CASCADE)
    start = models.DateTimeField()
    end = models.DateTimeField()
    requirements = models.JSONField(blank=True, null=True)

>>> from django.contrib.postgres.aggregates import JSONBAgg
>>> Room.objects.annotate(
...     requirements=JSONBAgg(
...         'hotelreservation__requirements',
...         ordering='-hotelreservation__start',
...     )
... ).filter(requirements__0__sea_view=True).values('number', 'requirements')
<QuerySet [{'number': 102, 'requirements': [
    {'parking': False, 'sea_view': True, 'double_bed': False},
    {'parking': True, 'double_bed': True}
]}]>

自 4.0 版以来已弃用:如果没有行并且default未提供,JSONBAgg返回一个空列表而不是None.此行为已弃用,将在 Django 5.0 中删除。如果需要,请显式设置defaultValue('[]').

相关用法


注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.contrib.postgres.aggregates.JSONBAgg.ordering。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。