专栏名称: Python程序员杂谈
关注PythonWeb开发及相关领域的方方面面,分享在实际工作中遇到的问题及解决方案。关注the5fire,了解Python开发的点点滴滴。
目录
相关文章推荐
山东应急管理  ·  紧急召回!有自燃风险,你也许有! ·  10 小时前  
山东应急管理  ·  紧急召回!有自燃风险,你也许有! ·  10 小时前  
青年文摘  ·  人生建议:尽快解决让你不舒服的小事 ·  2 天前  
灼见  ·  这次的禁酒令为何能管得住? ·  2 天前  
YNTV2都市条形码  ·  就在明天!东风广场开放 ·  2 天前  
51好读  ›  专栏  ›  Python程序员杂谈

Django2.0新特性之autocomplete_fields

Python程序员杂谈  · 公众号  ·  · 2018-01-22 08:56

正文

请到「今天看啥」查看全文


当外键的数据量小的时候,这不是个问题,但是如果你的频道有上千个呢?再多点呢?你可以想象下要等待多久才能拿到数据,然后渲染完页面。

因此我们一般使用autocomplete light来解决这个问题,解决问题的思路其实很简单(视频里讲的很清楚),就是监听input的change,然后发送数据到后端某个接口,接口根据输入关键字来过滤数据(类似 Model.objects.filter(name__contains=keywords) ),最后返回结果。前端展示。

不过每次都需要配置autocomplete light是有点繁琐,上篇文章中也提到一个概念 自治 ,如果Django本身就能解决这个问题,那肯定是极好的。

admin的autocomplete_fields

在Django的2.0版本中,提供了这样的功能,可以在admin配置中,定义 autocomplete_fields = ['外键字段'] 来解决上面说到的问题。(前端库依然是select2.js)

不过单纯的配置 autcomplete_fields 是不行的,后端得提供个接口才行。因此这个 外键字段 必须配置了admin才行(并且设置了 search_fields 配置)。像是这样:







请到「今天看啥」查看全文