您的位置:首页技术文章
文章详情页

Django admin 实现search_fields精确查询实例

【字号: 日期:2024-10-16 09:21:30浏览:11作者:猪猪

我就废话不多说了,还是直接看代码吧!

search_fields = (u’gift_rule_id’,u’user_id’, u’activity_id’,)//默认的查询集合def get_queryset(self, request): return super(GiftConfirmAdmin, self).get_queryset(request).all().order_by('-id')//根据关键字进行查询集合def get_search_results(self, request, queryset, search_term): queryset, use_distinct = super(GiftConfirmAdmin, self).get_search_results(request, queryset, search_term) try: search_term_as_int = int(search_term) queryset &= (self.model.objects.filter(gift_rule_id=search_term_as_int) | self.model.objects.filter(user_id=search_term_as_int) | self.model.objects.filter(activity_id=search_term)) except: pass return queryset, use_distinct

补充知识:使用xadmin搜索search_fields报错:Related Field got invalid lookup: icontains

一、问题描述

使用xadmin实现Django后台功能时,使用search_fields = [字段名,字段名],在搜索的时候报错Related Field got invalid lookup: icontains

二、问题分析

search_fields 控制可以通过搜索框搜索的字段名称,search_fields=()或search_fields=[],xadmin使用的是模糊查询

报错信息翻译出来为:相关字段的查找无效,因为search_fields中的项不是字符类型,例如字段类型是ForeignKey,则会报错

三、解决方法

删除search_fields中类型不符的项,例如删除字段类型为ForeignKey的项

以上这篇Django admin 实现search_fields精确查询实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持好吧啦网。

标签: Django
相关文章: