6

django-cms を使用して非常に快適に動作している django サイトを持っていますが、jQuery を使用して独自の派手な JavaScript をいくつか含めたいと考えています。私はdjangoにかなり慣れていないので、私の問題はこれに起因する可能性があります。

Django-cms は jQuery 自体を使用するため、ヘッダーに jquery を追加すると、当然のことながら問題が発生します。django-cms に影響を与えずに独自の jQuery を追加するにはどうすればよいですか?

現時点では、私の JavaScript ファイルは、プロジェクトの settings.py で定義したメディア ルートに保存されており、前述のように、ヘッダーでそれらを参照しています。

これを読むと、ばかげた質問のように思えますが、それでも困惑しています。

編集::いくつかのコード

メディア ルートが定義されています。

MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')

私の基本テンプレートでは、ヘッダーに含まれています

<script src="/media/javascript/jquery.js" type="text/javascript"></script>
<script src="/media/javascript/application.js" type="text/javascript"></script>

application.js の Javascript は機能しますが、django-cms が起動すると壊れます。たとえば、プレースホルダーにプラグインを追加しようとすると、次のようになります。

Uncaught TypeError: Property 'type' of object function ( selector, context ) {
        // The jQuery object is actually just the init constructor 'enhanced'
        return new jQuery.fn.init( selector, context );
    } is not a function

これは、2 つの jQuery が互いに競合していたためだと思いました。

::別の編集::これはまだ開発中であるため、静的ファイルをホストするためにdjangoを使用していることをおそらく追加する必要があります...

4

2 に答える 2

2

ええと、django-cmsのバンドルされたjQueryをリンクすると、すべてが修正されます...

残念ながら、バージョン1.3.2を使用していますが、今のところdjango-cmsをアップグレードするのではなく、これに対処すると思います。

于 2010-11-16T10:57:25.357 に答える
1

簡単な解決策: JQuery ライブラリをヘッダーに保持し、他のすべての JS をページの最下部の の直前に配置し</body>ます。この場合、管理者モードでは、jQuery ライブラリは管理者のコピーによってオーバーライドされ、すべてのコードがそこに追加されます。

于 2011-07-26T01:24:24.013 に答える