2010-11-15 8 views
6

Ich habe eine Django-Site, die ziemlich glücklich mit django-cms läuft, aber jetzt möchte ich ein paar meiner eigenen javascript mit jQuery einbinden. Ich bin ziemlich neu im Django, also könnten meine Probleme daraus entstehen.django-cms und jQuery

Django-cms verwendet jQuery selbst, und wenn ich also jquery zum Header hinzufüge - Dinge brechen rathter nicht überraschend. Wie füge ich meine eigene jQuery hinzu, ohne django-cms zu beeinflussen?

Im Moment sind meine Javascript-Dateien in der Media-Root gespeichert, die ich in den Projekten settings.py definiert habe, und wie erwähnt, referenziere ich sie in der Kopfzeile.

Während ich dies lese, scheint es eine dumme Frage, aber ich bin immer noch perplex.

EDIT :: einige Code

ich eine Medien Wurzel definiert:

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

und in meiner Basisvorlage enthält die Header

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

Javascript in application.js funktioniert, aber Wenn das django-cms-Zeug oben ist, bricht es. Zum Beispiel versuchen, ein Plugin, um ein Platzhalter Ergebnisse in hinzuzufügen:

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 

ich davon ausgegangen war, weil die beiden jQuerys miteinander

Konflikt wurden :: EIN ANDERES EDIT :: ich wahrscheinlich, dass sollte hinzufügen ich verwende django die statischen Dateien nur zu bewirten, weil diese noch in der Entwicklung ...

+0

Benötigen Sie nähere Informationen: Möchten Sie eine andere Version der jQuery-Bibliothek verwenden als mit Django-CMS geliefert wird, oder möchten Sie nur eigene benutzerdefinierte Skripts in jQuery einfügen? – semperos

+0

Es macht mir nichts aus, die gebündelte jQuery zu verwenden - aber soweit ich sehen kann, wird sie nur geladen, wenn die django-cms Admin-Leiste usw. existiert. Ich muss jedoch einige zusätzliche jquery ui Elemente und mindestens ein Plugin hinzufügen. –

+0

Django sollte nicht mit Ihrer jQuery in Konflikt stehen. Haben Sie versucht, eine statische Seite zu erstellen und den zu testenden jquery-Code hinzuzufügen? Wenn Sie den Code einfügen möchten, der Ihnen hier Probleme bereitet, erhalten Sie wahrscheinlich eine spezifischere Antwort. –

Antwort

1

Eine einfache Lösung: Halten Sie Ihre JQuery-Bibliothek in der Kopfzeile und legen Sie alle anderen Ihre JS am Anfang der Seite, direkt vor </body>. In diesem Fall wird Ihre jQuery-Bibliothek im Admin-Modus von der Admin-Kopie überschrieben und dann wird der gesamte Code wieder hinzugefügt.

+0

* direkt vor Agonych

2

Nun, die Verknüpfung der django-cms jQuery gebündelt nicht beheben alles ...

Ach, es nutzt Version 1.3. 2 aber ich denke ich werde damit umgehen, anstatt django-cms zu versuchen und zu aktualisieren.