-
autocomplete_fields
是您希望更改為 Select2 自動完成輸入的ForeignKey
和/或ManyToManyField
字段的列表。默認情況下,管理員對這些字段使用 select-box 接口 (
<select>
)。有時您不想承擔選擇所有相關實例以顯示在下拉列表中的開銷。Select2 輸入看起來類似於默認輸入,但帶有一個異步加載選項的搜索函數。如果相關模型有很多實例,這會更快更多user-friendly。
您必須在相關對象的
ModelAdmin
上定義search_fields
為避免未經授權的數據泄露,用戶必須擁有相關對象的
view
或change
權限才能使用自動完成函數。結果的排序和分頁由相關的
ModelAdmin
的get_ordering()
get_paginator()
在以下示例中,
ChoiceAdmin
有一個從ForeignKey
到Question
的自動完成字段。結果由question_text
字段過濾並由date_created
字段排序:class QuestionAdmin(admin.ModelAdmin): ordering = ['date_created'] search_fields = ['question_text'] class ChoiceAdmin(admin.ModelAdmin): autocomplete_fields = ['question']
大型數據集的性能注意事項
使用
ModelAdmin.ordering
此外,如果您的搜索字段包含未被數據庫索引的字段,您可能會在超大表上遇到性能不佳的問題。
對於這些情況,最好使用full-text 索引搜索編寫自己的
ModelAdmin.get_search_results()
您可能還想在非常大的表上更改
Paginator
,因為默認分頁器始終執行count()
查詢。例如,您可以覆蓋Paginator.count
屬性的默認實現。
本文介紹django.contrib.admin.ModelAdmin.autocomplete_fields
的用法。
聲明
ModelAdmin.autocomplete_fields
相關用法
- Python Django ModelAdmin.get_changeform_initial_data用法及代碼示例
- Python Django ModelAdmin.get_formset_kwargs用法及代碼示例
- Python Django ModelAdmin.get_urls用法及代碼示例
- Python Django ModelAdmin.formfield_for_choice_field用法及代碼示例
- Python Django ModelAdmin.readonly_fields用法及代碼示例
- Python Django ModelAdmin.prepopulated_fields用法及代碼示例
- Python Django ModelAdmin.empty_value_display用法及代碼示例
- Python Django ModelAdmin.get_form用法及代碼示例
- Python Django ModelAdmin.formfield_for_foreignkey用法及代碼示例
- Python Django ModelAdmin.get_search_results用法及代碼示例
- Python Django ModelAdmin.date_hierarchy用法及代碼示例
- Python Django ModelAdmin.get_formsets_with_inlines用法及代碼示例
- Python Django ModelAdmin.save_model用法及代碼示例
- Python Django ModelAdmin.view_on_site用法及代碼示例
- Python Django ModelAdmin.get_inline_instances用法及代碼示例
- Python Django ModelAdmin.formfield_overrides用法及代碼示例
- Python Django ModelAdmin.get_changelist_formset用法及代碼示例
- Python Django ModelAdmin.get_sortable_by用法及代碼示例
- Python Django ModelAdmin.fields用法及代碼示例
- Python Django ModelAdmin.get_ordering用法及代碼示例
- Python Django ModelAdmin.get_changelist_form用法及代碼示例
- Python Django ModelAdmin.get_actions用法及代碼示例
- Python Django ModelAdmin.list_display用法及代碼示例
- Python Django ModelAdmin.list_display_links用法及代碼示例
- Python Django ModelAdmin.search_fields用法及代碼示例
注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.contrib.admin.ModelAdmin.autocomplete_fields。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。