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

问题描述 投票:1回答:1

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

我想在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中都不是。

我该如何解决?

javascript jquery-select2-4 django-2.1
1个回答
0
投票

修复它有两个步骤:

设置一个名为$的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>
© www.soinside.com 2019 - 2024. All rights reserved.