Я работаю над приложением DjangoCMS, которое включает в себя его пользовательский файл javascript, но у меня есть проблема с использованием jQuery после использования templatetag render_block.DjangoCMS Sekizai {% render_block "js"%} отключить использование jQuery
После создания нового проекта здесь моя структура проекта:
project/
apps/
myapp/
static/
js/
custom.js
templates/
base.html
header.html
menu.html
__init__.py
settings.py
urls.py
base.html
{% load cms_tags menu_tags sekizai_tags staticfiles %}
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}This is my new project home page{% endblock title %}</title>
</head>
<body>
<div>
{% include "header.html" %}
{% show_menu 0 100 100 100 "menu.html" %}
</div>
{% block content %}{% endblock content %}
{% render_block "js" %}
{% addtoblock 'js' %}
<script type='text/javascript' src="{% static "js/bootstrap.min.js" %}"></script>
<script type='text/javascript' src="{% static "js/custom.js" %}"></script>
{% endaddtoblock 'js' %}
</body>
</html>
проекта/приложения/MyApp/шаблоны/MyApp/home.html
{% extends CMS_TEMPLATE %}
{% load cms_tags sekizai_tags staticfiles %}
{% block title %}Home{% endblock title %}
{% block content %}{% endblock content %}
не содержит содержания в home.html, все же. Но контент из base.html отображается правильно. Проблема в custom.js, которая использует jQuery.
custom.js
$(document).ready(function(){
alert("Hi");
});
сообщение оповещения никогда не всплывал, и я получаю сообщение "неопределенные не является функцией". Основная проблема, которая беспокоит меня, заключается в том, что jQuery включен в мой исходный код, но я не могу его использовать.
исходный код
<html>
...
<body>
....
<script>
var _jQuery = window.jQuery || undefined;
var _$ = window.$ || undefined;
</script>
<script src="/static/cms/js/libs/jquery.min.js"></script>
<script src="/static/cms/js/libs/class.min.js"></script>
<script src="/static/cms/js/modules/jquery.ui.custom.js"></script>
<script src="/static/cms/js/modules/jquery.ui.nestedsortable.js"></script>
<script src="/static/cms/js/modules/cms.base.js"></script>
<script src="/static/cms/js/modules/cms.modal.js"></script>
<script src="/static/cms/js/modules/cms.sideframe.js"></script>
<script src="/static/cms/js/modules/cms.clipboard.js"></script>
<script src="/static/cms/js/modules/cms.plugins.js"></script>
<script src="/static/cms/js/modules/cms.structureboard.js"></script>
<script src="/static/cms/js/modules/cms.toolbar.js"></script>
...
<script type='text/javascript' src="/static/js/custom.js"></script>
</body>
</html>
Очевидно {% render_block "JS" %} работает нормально, но я обнаружил, что из-за этого, CMS. $ Будет принят за $. Из-за этого я добавил:
<script> $ = CMS.$ </script>
на вершине моего addtoblock
:
{% addtoblock 'js' %}
<script>$=CMS.$</script>
<script type='text/javascript' src="{% static "js/bootstrap.min.js" %}"></script>
<script type='text/javascript' src="{% static "js/custom.js" %}"></script>
{% endaddtoblock 'js' %}
Моя проблема оповещения была решена, но Bootstrap все еще сообщает, что Ther не JQuery:
Для использования JavaScript в Bootstrap требуется jQuery
Добавление jQuery в addtoblock
может решить проблему, но тогда в моем исходном коде будут два одинаковых файла jQuery, и это не нужно. Что мне здесь не хватает?
Благодарим вас за внимание, на самом деле это решило мою проблему с двумя файлами jQuery. – Sasa