介绍
这篇文章主要介绍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精确查询”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!