-
get_search_results
方法将显示的对象列表修改为与提供的搜索词匹配的对象列表。它接受请求、应用当前过滤器的查询集和用户提供的搜索词。它返回一个元组,其中包含一个经过修改以实现搜索的查询集,以及一个指示结果是否可能包含重复项的布尔值。默认实现搜索在
ModelAdmin.search_fields
此方法可能会被您自己的自定义搜索方法覆盖。例如,您可能希望按整数字段搜索,或使用外部工具,如 Solr 或 Haystack。您必须确定您的搜索方法实现的查询集更改是否会在结果中引入重复项,并在返回值的第二个元素中返回
True
。例如,要按
name
和age
搜索,您可以使用:class PersonAdmin(admin.ModelAdmin): list_display = ('name', 'age') search_fields = ('name',) def get_search_results(self, request, queryset, search_term): queryset, may_have_duplicates = super().get_search_results( request, queryset, search_term, ) try: search_term_as_int = int(search_term) except ValueError: pass else: queryset |= self.model.objects.filter(age=search_term_as_int) return queryset, may_have_duplicates
此实现比
search_fields = ('name', '=age')
更有效,后者导致数字字段的字符串比较,例如 PostgreSQL 上的... OR UPPER("polls_choice"."votes"::text) = UPPER('4')
。
本文介绍 django.contrib.admin.ModelAdmin.get_search_results
的用法。
声明
ModelAdmin.get_search_results(request, queryset, search_term)
相关用法
- Python Django ModelAdmin.get_sortable_by用法及代码示例
- Python Django ModelAdmin.get_changeform_initial_data用法及代码示例
- Python Django ModelAdmin.get_formset_kwargs用法及代码示例
- Python Django ModelAdmin.get_urls用法及代码示例
- Python Django ModelAdmin.get_form用法及代码示例
- Python Django ModelAdmin.get_formsets_with_inlines用法及代码示例
- Python Django ModelAdmin.get_inline_instances用法及代码示例
- Python Django ModelAdmin.get_changelist_formset用法及代码示例
- Python Django ModelAdmin.get_ordering用法及代码示例
- Python Django ModelAdmin.get_changelist_form用法及代码示例
- Python Django ModelAdmin.get_actions用法及代码示例
- Python Django ModelAdmin.get_queryset用法及代码示例
- 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.formfield_for_foreignkey用法及代码示例
- Python Django ModelAdmin.autocomplete_fields用法及代码示例
- Python Django ModelAdmin.date_hierarchy用法及代码示例
- Python Django ModelAdmin.save_model用法及代码示例
- Python Django ModelAdmin.view_on_site用法及代码示例
- Python Django ModelAdmin.formfield_overrides用法及代码示例
- Python Django ModelAdmin.fields用法及代码示例
- Python Django ModelAdmin.list_display用法及代码示例
- Python Django ModelAdmin.list_display_links用法及代码示例
注:本文由纯净天空筛选整理自djangoproject.com大神的英文原创作品 django.contrib.admin.ModelAdmin.get_search_results。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。