-
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。