Javascript 在Django admin中选择2 4.0.5常见错误

Javascript 在Django admin中选择2 4.0.5常见错误,javascript,jquery-select2-4,django-2.1,Javascript,Jquery Select2 4,Django 2.1,(免责声明:这是一个自我回答的问题) 我想在Django管理面板(特别是change\u list.html模板)中设置一些表单字段。因此,我在页面中添加了必要的脚本(不是完整版本),但当它加载时,会出现以下错误: Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on you

(免责声明:这是一个自我回答的问题)

我想在Django管理面板(特别是
change\u list.html
模板)中设置一些表单字段。因此,我在页面中添加了必要的脚本(不是完整版本),但当它加载时,会出现以下错误:

Select2: An instance of jQuery or a jQuery-compatible library was not found. Make
    sure that you are including jQuery before Select2 on your web page.
TypeError: a is undefined
TypeError: e is undefined
TypeError: $ is not a function
当您搜索其中一个错误(不是第一个和最后一个错误)时,答案不在同一主题上(通常与不良的
processResults
设置或引导程序问题有关),或者两者都不在


如何修复它?

修复它需要两个步骤:

设置名为
$
当您看到最后一行(
TypeError:$is not a function
)并且所有脚本通常都使用它时(谁不在脚本中使用
$
)。但当您修改它时,仍然会出现以下错误:

TypeError: a is undefined
TypeError: e is undefined
所以,我们必须更深入

设置一个名为
jQuery
这一个可能有点隐藏,因为我们必须深入研究
select2.js
脚本(您通常使用缩小版,因此只显示
$

看起来有时会使用名为
jQuery
的变量,因此您还必须在JS中设置它

修复应该是什么样子的 在Select2脚本之前添加此脚本:

<script type="text/javascript">
    // To prevent errors for Select2 JS
    var $ = django.jQuery;
    var jQuery = django.jQuery;
</script>

//要防止Select2 JS出现错误
var$=django.jQuery;
var jQuery=django.jQuery;