如何设置Django管理员搜索字段?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何设置Django管理员搜索字段?相关的知识,希望对你有一定的参考价值。

我设置了Django搜索字段,

search_fields = ('publisher_number',)

publisher_number是IntegerField,假设我有publisher_number:

1,5,10,13,18,20,25

当我输入django管理员搜索字段编号1时,我将获得publisher_number的对象:1,10,13,18

所有包含数字1,

当我输入1时,我希望得到与publisher_number完全对象:1不是10,13,18和类似

Attribut publisher_number不是唯一的。

我如何覆盖django搜索字段方法来搜索确切类型的字符串,不包含字符串?

答案

您可以通过覆盖来自定义此行为(自1.6起)

ModelAdmin.get_search_results(request, queryset, search_term) 

https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_search_results

你有

.filter(publisher_number=search_term_as_int)

它只给你publisher_number 1而不是10或者等等。

另一答案
search_fields = ('=publisher_number',)

通过这样写,你可以解决你的问题。

以上是关于如何设置Django管理员搜索字段?的主要内容,如果未能解决你的问题,请参考以下文章

如何提高 Django 管理员搜索相关字段(MySQL)中的查询性能

如何使 Django 管理员只读 textarea 字段

Django 管理中的精确字段搜索

Django:在创建对象时搜索多对多字段

Python-Django 如何在管理员中使用 django-ajax-uploader?

如何在搜索栏中按布尔字段过滤 - django