2013-06-18 42 views
0

问题是,在django.contrib.admin应用程序的基本模板中,没有定义jQuerydjango.jQuery,它们只出现在几个后代模板上。我想在任何地方启用它,因为我想添加一个JS-applet和管理站点的所有页面。 当然,可以添加需要的脚本来重写基本模板,但在这种情况下,当那些几个后代模板在我的后面插入jQuery脚本时 - 我的小程序将被重置。智能启用django.jQery在Django管理站点无处不在

我目前的解决方案是在所有脚本之后在脚注中添加带有小程序的脚本,以便在所有脚本加载后加载脚本。即使jQuery被加载多次 - 它不会损害我的小程序。 但我仍然觉得,我想找到更好的解决方案,其中jQuery初始化在所有情况下都不会被复制。 所以也许有人知道是否有任何优雅的解决方案,以在django-admin的所有页面上添加jQuery?

ps
我想设置的小程序是django_bfm。默认情况下,它只适用于选定的模型,我想让它看起来无处不在。

回答

0

你可以重新定义管理基本模板,看起来像这样:

... some lines before... 
<script type="text/javascript">window.__admin_media_prefix__ = "{% filter escapejs %}{% static "admin/" %}{% endfilter %}";</script> 
{% block extrahead %}{% endblock %} 
<INCLUDE YOUR JQUERY HERE> 
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %} 
... all other lines ... 

在这种情况下,你有你想要的jQuery和,因为它是默认的管理脚本后,总是包含在内,管理网站将使用你包括的jquery ...

希望它有帮助!