0

問題は、django.contrib.adminアプリケーションの基本テンプレートには何jQuerydjango.jQuery定義されておらず、いくつかの子孫テンプレートにのみ表示されることです。そして、管理サイトのすべてのページに 1 つの JS アプレットを追加したいので、どこでも有効にしたいと考えています。もちろん、オーバーライドされた基本テンプレートに必要なスクリプトを追加することは可能ですが、その場合、それらのいくつかの子孫テンプレートがjQuery私のテンプレートの後にスクリプトを挿入すると、私のアプレットはリセットされます。

私の現在の解決策は、すべてのスクリプトの後にフッターにアプレットを含むスクリプトを追加することです。したがって、すべてのスクリプトがロードされた後にロードされます。また、jQuery何度かロードされても、アプレットに害はありません。しかし、私はまだjQuery、すべての場合に初期化が繰り返されない、より良い解決策を見つけたいと思っています。したがって、django-admin のすべてのページに jQuery を追加するエレガントなソリューションがあるかどうかを知っている人もいるでしょうか?

ps
設定したいアプレットはdjango_bfmです。デフォルトでは、選択したモデルでのみ機能しますが、どこにでも表示されるようにしたいと考えています。

4

1 に答える 1

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を使用します...

それが役に立てば幸い!

于 2013-06-19T05:35:17.323 に答える