Django中管理如何实现search_fields精确查询

  介绍

这篇文章主要介绍Django中管理如何实现search_fields精确查询,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

代码如下:

search_fields =, (u # 39; gift_rule_id& # 39; u # 39; user_id # 39;,, u # 39; activity_id # 39;,)//默认的查询集合   def  get_queryset(自我,,请求):   return 才能;超级(GiftConfirmAdmin,,自我).get_queryset(请求)().order_by (“-id")//根据关键字进行查询集合   def  get_search_results(请求,自我,还以为,queryset, search_term):   queryset,才能,use_distinct =,超级(GiftConfirmAdmin,,自我).get_search_results (search_term)请求,时间queryset,大敌;;   尝试才能:   ,,,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))   除了才能:   ,才能通过   return 才能;queryset, use_distinct

<强>补充知识: <强>使用xadmin搜索search_fields报错:相关领域有无效的查询:icontains

<强>一、问题描述

使用xadmin实现Django后台功能时,使用search_fields=[字段名、字段名),在搜索的时候报错相关领域有无效的查询:icontains

<强>二,问题分析

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

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

<强>三,解决方法

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

以上是“Django中管理如何实现search_fields精确查询”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

Django中管理如何实现search_fields精确查询