这篇文章主要介绍Django中admin如何实现search_fields精确查询,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
代码如下:
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精确查询”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。