django 管理和自动完成灯:Select2:找不到 jQuery 实例或 jQuery 兼容库
Posted
技术标签:
【中文标题】django 管理和自动完成灯:Select2:找不到 jQuery 实例或 jQuery 兼容库【英文标题】:django admin and autocomplete light: Select2: An instance of jQuery or a jQuery-compatible library was not found 【发布时间】:2018-01-21 18:16:36 【问题描述】:对于我尝试在管理员中对其进行编码的字段,自动完成灯光小部件未完全加载。相反,我得到以下内容
Select2:未找到 jQuery 实例或 jQuery 兼容库。确保在您的网页上的 Select2 之前包含 jQuery。
旁边只有一个选项的选择框。
这实际上类似于之前关于 select2 库的几个问题,并且大多数解决方案都涉及重新排序 settings.py 中的文件或运行 python manage.py collectstatic。但到目前为止,这些都没有对我有用。
任务是在我的网页上的 Select2 之前包含 jQuery...怎么做?
【问题讨论】:
如果你在正确的步骤中,你不需要在 Select2 之前做特殊的事情来制作 jQuery。您在表单模板上请 form.media
吗?
所以我正在尝试更新管理员上的添加/更改页面。如何检索模板并添加这样一行 form.media。我也在尝试阅读文档以弄清楚它到底是做什么的。
【参考方案1】:
我遇到了同样的问题,我能够通过在我的 settings.py
文件中重新配置 INSTALLED_APPS
来解决它,以确保 'dal'
和 'dal_select2'
都包含在“django.contrib.admin”之前。
这个小花絮包含在installation documentation 的django-autocomplete-light
中,虽然我在最初的阅读中错过了它:
然后,让 Django 找到我们需要的静态文件,方法是在 django.contrib.admin 和 grappelli(如果存在)之前添加到 INSTALLED_APPS:
'dal', 'dal_select2', # 'grappelli', 'django.contrib.admin',
这是为了覆盖管理员提供的 jquery.init.js 脚本,该脚本设置 > 没有冲突的 jQuery,使 jQuery 仅在 django.jQuery 中可用,而不是 $。
附:我最终发现 django 2.x+ 现在有一个built-in for auto-complete fields。我最终改用它并强烈推荐它以降低开销/开发成本。
【讨论】:
以上是关于django 管理和自动完成灯:Select2:找不到 jQuery 实例或 jQuery 兼容库的主要内容,如果未能解决你的问题,请参考以下文章
在获取数据时,对 Django 项目使用 Select2 自动完成功能不起作用