在我们的django-admin网站上使用django search_fields,我们搜索数据库中的内容。 我希望在文本框(或任何其他方式)的search_fields中有一个排除选项
例如: 在我的管理文件中:
search_fields = ('name', 'os', 'owner__first_name', 'owner__last_name',)
在网页上我正在寻找'John' - >得到一些结果,包括约翰列侬
我很乐意让'John {“排除”:“Lennon”}'
- >这将给出一些不包括约翰·列侬的结果
答案 0 :(得分:1)
您可以通过在ModelAdmin子类中定义get_search_results方法来自定义搜索。 虽然没有测试过..
class YourModelAdmin(admin.ModelAdmin):
list_display = ('name', 'os')
search_fields = ('name', 'os', 'owner__first_name', 'owner__last_name',)
def get_search_results(self, request, queryset, search_term):
queryset = super(YourModelAdmin, self).get_search_results(request, queryset, search_term)
try:
queryset |= self.model.objects.exclude(owner__last_name__iexact='lennon')
except:
pass
return queryset