本文介绍 django.contrib.postgres.expressions.ArraySubquery 的用法。
声明
class ArraySubquery(queryset)
Django 4.0 中的新函数。 
ArraySubquery 是一个  ,它使用 PostgreSQL Subquery ARRAY 构造函数从查询集中构建值列表,它必须使用   才能仅返回单个列。QuerySet.values() 
此类与   的不同之处在于它不充当聚合函数,并且不需要 SQL ArrayAgg GROUP BY 子句来构建值列表。
例如,如果要将所有相关书籍作为 JSON 对象注释给作者:
>>> from django.db.models import OuterRef
>>> from django.db.models.functions import JSONObject
>>> from django.contrib.postgres.expressions import ArraySubquery
>>> books = Book.objects.filter(author=OuterRef('pk')).values(
...     json=JSONObject(title='title', pages='pages')
... )
>>> author = Author.objects.annotate(books=ArraySubquery(books)).first()
>>> author.books
[{'title': 'Solaris', 'pages': 204}, {'title': 'The Cyberiad', 'pages': 295}]
相关用法
- Python Django ArrayAgg.ordering用法及代码示例
 - Python Django ArrayField.base_field用法及代码示例
 - Python Django Area用法及代码示例
 - Python Django ArchiveIndexView用法及代码示例
 - Python Django Area.__getattr__用法及代码示例
 - Python Django Area.unit_attname用法及代码示例
 - Python Tweepy API.mentions_timeline()用法及代码示例
 - Python Tweepy API.get_user()用法及代码示例
 - Python Tweepy API.list_timeline()用法及代码示例
 - Python Django ACos用法及代码示例
 - Python Tweepy API.add_list_members()用法及代码示例
 - Python Django Abs用法及代码示例
 - Python Django AuthenticationForm.confirm_login_allowed用法及代码示例
 - Python Tweepy API.create_block()用法及代码示例
 - Python Django ATan用法及代码示例
 - Python Tweepy API.trends_closest()用法及代码示例
 - Python Tweepy API.send_direct_message()用法及代码示例
 - Python Tweepy API.destroy_status()用法及代码示例
 - Python Tweepy API.destroy_saved_search()用法及代码示例
 - Python Tweepy API.get_list()用法及代码示例
 - Python Tweepy API.favorites()用法及代码示例
 - Python Tweepy API.blocks_ids()用法及代码示例
 - Python Tweepy API.configuration()用法及代码示例
 - Python Tweepy API.lists_memberships()用法及代码示例
 - Python Tweepy API.home_timeline()用法及代码示例
 
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.contrib.postgres.expressions.ArraySubquery。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
