首页 > 解决方案 > 如何强制 Django 使用 CDN 中的 select2 而不是本地管理员版本?

问题描述

我正在尝试使用Django. 我已经用作select2我的组件之一。我的问题是,在渲染模板时,Django 使用的是select2from adminwhich live here:单击此处转到 GitHub 代码。我想使用select2从 CDN 加载的内容,因为它较新,而且我想传递额外的参数。

这是我的代码(我删除了不必要的部分以使其更简单):

核心/模板/核心/base.html:

<!DOCTYPE html>
{% load static %}
<html>
<head>
    <link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet"/>
    <script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
</head>
<body>
{% block content %}
{% endblock %}
{% block scripts %}
{% endblock %}
</body>
</html>

app_name/templates/app_name/template_name.html:

{% extends 'core/base.html' %}
{% block content %}
    <form method="post">
        {% csrf_token %}
        <div class="form-group form-group-lg">
            <div class="input-group input-group-lg col-12">
                <select id="id_select2" class="form-control selectpicker" name="options[]"
                        multiple="multiple" data-live-search="true">
                    <option data-tokens="123" value="456">Test</option>
                </select>
            </div>
        </div>
    </form>
{% endblock %}
{% block scripts %}
    <script>
        $(document).ready(function () {
            $('#id_select2').select2();
        });
    </script>
{% endblock %}

我知道这个问题是因为有两个函数名称和参数完全相同。

标签: javascriptdjangofunctiondjango-templatesjquery-select2

解决方案


我建议您将 select2 (脚本)的导入放在 html 正文中,就在您自己的脚本标记之前

:D


推荐阅读