在 django 管理搜索栏中,如果我有一个带有列 =fruit_name 的模型 我想在该列中搜索包含fruit_name = 香蕉或苹果的所有实例,这将显示所有香蕉和苹果,我该怎么做?
最佳答案
覆盖ModelAdmin.get_search_results ` 方法:
from operator import or_
from django.db.models import Q
class MyAdmin(admin.ModelAdmin):
...
def get_search_results(self, request, queryset, search_term):
queryset, use_distinct = super(MyAdmin, self).get_search_results(
request, queryset, search_term)
search_words = search_term.split()
if search_words:
q_objects = [Q(**{field + '__icontains': word})
for field in self.search_fields
for word in search_words]
queryset |= self.model.objects.filter(reduce(or_, q_objects))
return queryset, use_distinct
关于django - 有没有办法在管理搜索中搜索多个术语? Django ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28099848/