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 自动完成功能不起作用

Django 自动完成灯:未填充字段

html django自动完成灯适合100%

CSRF 令牌丢失或不正确 - 在 Django 中使用自动完成灯

来自json的Django自动完成

如何以编程方式打开 DAL(Django Autocomplete Light)Select2