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