You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

引入bootstrap_datepicker_plus后日期选择按钮无响应问题排查

解决Bootstrap DatePicker Plus点击无反应的问题

嘿,我仔细排查了你的代码,发现几个关键问题,这些应该就是导致日历按钮点击没反应的根源:

1. jQuery加载顺序错误

Bootstrap的JavaScript依赖jQuery才能正常工作,但你的base.html里先加载了bootstrap.min.js,之后才引入jQuery。这会导致Bootstrap的JS无法初始化,连带datepicker的脚本也会失效。

2. 重复引入Bootstrap资源

你同时用了bootstrap3模板标签({% bootstrap_css %}、{% bootstrap_javascript %})和手动引入bootstrap.min.css、bootstrap.min.js,这种重复引入会引发资源冲突,干扰datepicker的初始化逻辑。

3. form.media重复渲染

在base.html的extra_css和extra_js块中,你默认渲染了{{ form.media.css }}和{{ form.media.js }},而子模板又再次渲染了一遍。重复加载datepicker的CSS/JS可能导致脚本错误。


修正步骤

第一步:修改imports/base.html

调整资源加载顺序,移除重复的Bootstrap资源,清理form.media的重复渲染:

{% load staticfiles %}
{% load bootstrap3 %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    {% bootstrap_css %} {# 用bootstrap3标签加载Bootstrap CSS #}
    {% block extra_css %}{% endblock %} {# 移除默认的form.media.css,由子模板控制 #}
    <title>{% block title %}{% endblock %}</title>
    <link rel="stylesheet" href="{% static 'css/style.css' %}">
    <!-- 先加载jQuery,再加载Bootstrap JS -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="{% static 'js/bootstrap.min.js' %}"></script>
</head>
<body>
<div class="container-fluid">
    <div class="row">
        <div class="col-lg-2 col-md-2 col-sm-2 sidebar">
            {% block sidebar %}{% endblock %}
        </div>
        <div class="col-lg-10 col-lg-offset-2 col-md-10 col-md-offset-2 col-sm-10 col-sm-offset-2 content">
            {% block heading %}{% endblock %}
            {% block page %}{% endblock %}
        </div>
    </div>
</div>
{% bootstrap_javascript jquery='full' %} {# 用bootstrap3标签加载完整的jQuery+Bootstrap JS #}
{% block extra_js %}{% endblock %} {# 移除默认的form.media.js,由子模板控制 #}
</body>
</html>

第二步:确认子模板配置保持不变

你的创建公司子模板中extra_css和extra_js块的写法是正确的,不需要修改:

{% extends 'imports/base.html' %}
{% load bootstrap3 %}
{% block extra_css %}
{{ form.media.css }}
{% endblock %}
{% block extra_js %}
{{ form.media.js }}
{% endblock %}
{% block title %}Imports Company{% endblock %}
{% block heading %}<h3 class="page-header-center">Creation Company</h3>{% endblock %}
<hr>
<hr>
{% block page %}
<form method="POST">
    {% csrf_token %}
    <div class="col-lg-4 col-md-4 col-sm-4 content">
        {% bootstrap_form company_form %}
        <button type="submit" class="btn btn-pink pull-right">Create</button>
    </div>
</form>
{% endblock %}

第三步:验证Settings配置

确保settings.py中的配置正确,没有冲突:

# settings.py
INSTALLED_APPS = [
    # 其他apps...
    'bootstrap3',
    'bootstrap_datepicker_plus',
]

BOOTSTRAP3 = { 
    'include_jquery': True, 
}

最后一步:清除浏览器缓存

修改完成后,记得清除浏览器的缓存(快捷键Ctrl+Shift+R或Cmd+Shift+R),避免加载旧的错误资源。

做完这些调整后,点击日历按钮应该就能正常弹出选择器了。如果还有问题,可以打开浏览器的开发者工具(F12),查看Console面板有没有报错信息,这能帮你进一步排查问题。

内容的提问来源于stack exchange,提问作者Philippe Haumesser

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:19:00