【发布时间】:2016-10-03 21:09:18
【问题描述】:
(注意:答案是合格的“是” - 如果不是我的 requirejs 配置问题,它应该可以工作 - 请参阅最后的更新)
我正在考虑为一些需要精明的最终用户进行维护的模型定制管理员。
我已经看到了一些关于如何实现这一点的 SO 问题,例如 How to override and extend basic Django admin templates?。
我希望了解管理员在任何特定时间点正在使用哪些模板文件是高效定制的关键。所以,我重新启用了 Django 调试工具栏(希望这次不会出现 requirejs 的副作用)。
Django 调试工具栏有效并显示在我的应用程序页面中。但它不会显示在管理页面上。这是意料之中的事吗?
Django (1.8.11)
django-debug-toolbar (1.4)
为什么它不工作/更新:
我想我知道发生了什么。在查看 Firebug 以查看管理页面涉及的 CSS 时,我注意到它正在请求调试工具栏 CSS:
http://localhost:8000/static/debug_toolbar/css/toolbar.css
这让我再次想到 requireJS 不兼容。果然,在控制台中,我看到了这个错误。
类型错误:$ 未定义 http://localhost:8000/static/debug_toolbar/js/toolbar.js 第 297 行
所以,又是一个 requireJS-DJT 故障。
仅供参考,我的 requireJS 调试工具栏解决方法是(来自 https://github.com/django-debug-toolbar/django-debug-toolbar/issues/605):
settings.py
DEBUG_TOOLBAR_CONFIG = {
"JQUERY_URL": None,
}
在我的应用程序的基本模板中:
(这是管理页面中缺少的部分)
{% block requirejs %}
//as per DJDT recommendations, make sure jquery loads before requireJS
<script type="text/javascript" src="/static/websec/external/jquery-2.1.1.min"></script>
<script type="text/javascript" src="{{STATIC_URL}}websec/external/require.js"></script>
<script>
//defines the requirejs configuration in general.
{% include "websec/requirejs_config.html" %}
</script>
【问题讨论】: