(免责声明:这是一个自我回答的问题)
我想在Django管理面板(特别是Select2模板)中为我的表单字段设置一些change_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
设置错误或者Bootstrap问题有关)或者在docs中都不是。
我该如何解决?
修复它有两个步骤:
$
的var当你看到最后一行(TypeError: $ is not a function
),并且所有脚本通常都使用它(谁不在脚本中使用$
?)时,你会想到这一个。但是当你修改它时,你仍然会遇到这些错误:
TypeError: a is undefined
TypeError: e is undefined
所以,我们必须更深入......
jQuery
的var这个可能有点隐藏,因为我们必须深入研究select2.js
脚本(通常使用缩小版本,因此只显示$
)。
看起来有时会使用名为jQuery
的var,因此您还必须在JS中进行设置。
在Select2脚本之前添加此脚本:
<script type="text/javascript">
// To prevent errors for Select2 JS
var $ = django.jQuery;
var jQuery = django.jQuery;
</script>