當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。