django admin search_fields 排除
django admin search_fields with exclude
在我们的 django-admin 站点中使用 django search_fields,我们在数据库中搜索大量内容。
我想在文本框中的 search_fields 中有一个排除选项(或任何其他方式)
示例:
在我的管理文件中:
search_fields = ('name', 'os', 'owner__first_name', 'owner__last_name',)
我正在寻找的网页中 'John' --> 得到一些结果,包括 john lennon
我很想拥有'John {"exclude": "Lennon"}'
--> 这将给出一些不包括 john lennon
的结果
您可以通过在 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
在我们的 django-admin 站点中使用 django search_fields,我们在数据库中搜索大量内容。 我想在文本框中的 search_fields 中有一个排除选项(或任何其他方式)
示例: 在我的管理文件中:
search_fields = ('name', 'os', 'owner__first_name', 'owner__last_name',)
我正在寻找的网页中 'John' --> 得到一些结果,包括 john lennon
我很想拥有'John {"exclude": "Lennon"}'
--> 这将给出一些不包括 john lennon
的结果您可以通过在 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