2015-07-11 3 views
1

У меня есть страница django, и я добавляю различные зависимости js на нескольких страницах. Например, на стр. 1 и 2 у меня есть таблица, которую я хочу сортировать. Поэтому я включаю следующий код на обе страницы.импортировать библиотеки javascript как переменные в шаблоне

<link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap-sortable.css' %}"> 
<script type="text/javascript" src="{% static 'js/bootstrap-sortable.js' %}"></script> 

Предположим, на стр. 3 и 4 у меня есть графики nvd3. Поэтому я включил следующий код:

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.6/d3.min.js" charset="utf-8"></script> 
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/nvd3/1.7.0/nv.d3.js"></script> 
<link href="{% static 'js/nvd3-master/build/nv.d3.css' %}" rel="stylesheet"> 
<link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap-sortable.css' %}"> 

Если мне нужно изменить Src URL этих зависимостей, я должен изменить все страницы, содержащие их по отдельности.
Я хотел бы определить переменные в статических файлах js и css, поэтому мне не нужно редактировать их несколько раз, но только один раз.
Что-то вроде этого:

bootstrap_sortable_css = """<link rel="stylesheet" type="text/css" href="{% static 'css/bootstrap-sortable.css' %}">""" 
bootstrap_sortable_js = """<script type="text/javascript" src="{% static 'js/bootstrap-sortable.js' %}"></script>""" 

А потом просто распечатать его в моем шаблоне:

<html> 
<head> 
    {{bootstrap_sortable_css}} 
</head> 
<body> 
content 
    {{bootstrap_sortable_js}} 
</body> 
</html> 

Есть ли стандарт для этого я пропустила?

ответ

0

Возможно, вы захотите использовать block. Блок используется для наследования шаблонов. Итак, у вас может быть 1 файл корневого шаблона, тогда все ваши страницы просто должны наследовать корневой шаблон.

Вы можете определить блок css и js следующим образом.

<html> 
<head> 
    {% block css %} 

    {% endblock css %} 
</head> 
<body> 
    content 
    {% block js %} 

    {% endblock js %} 
</body> 
</html> 

Затем вы можете переопределить блок на своем шаблоне страницы в зависимости от потребностей вашей страницы.

+0

Я знаю о блоке. Но я хочу использовать разные комбинации на разных страницах. В любом случае мне нужно будет переписать js-зависимости. – Lucas03

Смежные вопросы