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

时间:2014-12-02 22:23:15

标签: django

我设置了Django serach字段,

search_fields = ('publisher_number',)

publisher_number是IntegerField, 假设我有publisher_number:

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

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

所有包含数字1,

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

Attribut publisher_number不是唯一的。

如何覆盖django搜索字段方法来搜索精确类型的sting,而不是包含字符串?

2 个答案:

答案 0 :(得分:4)

search_fields = ('=publisher_number',)

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

答案 1 :(得分:2)

您可以通过覆盖(自1.6起)

来自定义此bevaviour
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等等。