本文介绍 django.db.models.query.QuerySet.only
的用法。
声明
only(*fields)
only()
方法或多或少与
相反。您可以使用在检索模型时应延迟 defer()
not
的字段来调用它。如果您的模型几乎所有字段都需要延迟,则使用only()
指定互补的字段集可以使代码更简单。
假设您有一个包含字段 name
、 age
和 biography
的模型。就延迟字段而言,以下两个查询集是相同的:
Person.objects.defer("age", "biography")
Person.objects.only("name")
每当您调用 only()
它 replaces
立即加载的字段集。该方法的名称是助记符:只有那些字段会立即加载;其余的被推迟。因此,对 only()
的连续调用只会导致最终字段被考虑:
# This will defer all fields except the headline.
Entry.objects.only("body", "rating").only("headline")
由于defer()
以增量方式执行(将字段添加到延迟列表),您可以组合对only()
和defer()
的调用,并且事情将按逻辑运行:
# Final result is that everything except "headline" is deferred.
Entry.objects.only("headline", "body").defer("body")
# Final result loads headline and body immediately (only() replaces any
# existing set of fields).
Entry.objects.defer("body").only("headline", "body")
文档注释中的所有注意事项也适用于defer()
only()
。谨慎使用它,并且只有在用尽其他选择之后。
使用
并省略使用 only()
请求的字段也是错误的。select_related()
相关用法
- Python Django QuerySet.order_by用法及代码示例
- Python Django QuerySet.select_related用法及代码示例
- Python Django QuerySet.union用法及代码示例
- Python Django QuerySet.latest用法及代码示例
- Python Django QuerySet.values用法及代码示例
- Python Django QuerySet.intersection用法及代码示例
- Python Django QuerySet.get用法及代码示例
- Python Django QuerySet.none用法及代码示例
- Python Django QuerySet.exclude用法及代码示例
- Python Django QuerySet.get_or_create用法及代码示例
- Python Django QuerySet.update_or_create用法及代码示例
- Python Django QuerySet.prefetch_related用法及代码示例
- Python Django QuerySet.first用法及代码示例
- Python Django QuerySet.annotate用法及代码示例
- Python Django QuerySet.dates用法及代码示例
- Python Django QuerySet.values_list用法及代码示例
- Python Django QuerySet.select_for_update用法及代码示例
- Python Django QuerySet.bulk_update用法及代码示例
- Python Django QuerySet.in_bulk用法及代码示例
- Python Django QuerySet.defer用法及代码示例
- Python Django QuerySet.aggregate用法及代码示例
- Python Django QuerySet.reverse用法及代码示例
- Python Django QuerySet.count用法及代码示例
- Python Django QuerySet.exists用法及代码示例
- Python Django QuerySet.explain用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.db.models.query.QuerySet.only。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。