django-cms и jQuery - PullRequest
       29

django-cms и jQuery

6 голосов
/ 15 ноября 2010

У меня есть сайт django, который довольно успешно работает с django-cms, но теперь я хочу включить некоторые из моих собственных причудливых javascript с использованием jQuery. Я довольно новичок в Django, поэтому мои проблемы могут возникнуть из-за этого.

Django-cms использует сам jQuery, и поэтому, если я добавлю jquery в заголовок - все неудивительно. Как добавить свой собственный jQuery, не влияя на django-cms?

В настоящий момент мои файлы 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>

Javascript в application.js работает, но когда он работает с 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

Я предположил, что это потому, что два jQuerys конфликтовали друг с другом

:: ДРУГОЕ РЕДАКТИРОВАНИЕ :: Я, вероятно, должен добавить, что я использую django для размещения статических файлов только потому, что он все еще находится в разработке ...

Ответы [ 2 ]

2 голосов
/ 16 ноября 2010

Ну, связывание jQuery с django-cms исправляет все ...

Увы, он использует версию 1.3.2, но я думаю, что я буду иметь дело с этим, а не пытаться обновить django-cms сейчас.

1 голос
/ 26 июля 2011

Простое решение: держите вашу библиотеку JQuery в заголовке и поместите все остальные ваши JS в нижней части страницы, прямо перед </body>.В этом случае в режиме администратора ваша библиотека jQuery будет перезаписана копией администратора, а затем весь ваш код будет добавлен обратно.

...