2016-01-16 3 views
0

Скажите, что я хочу включить бутстрап или угловую для каждой страницы в своих представлениях, есть ли более элегантный способ, чем копирование одной строки в каждый файл?Django: Как загрузить скрипт для каждой страницы?

+0

Возможный дубликат шаблона базы проектов Django (http://stackoverflow.com/questions/14720464/django-project-base-template) – P3zhman

ответ

1

Необходимо django template inheritance. Проделайте включить в шаблон base.html, и там вы определяете блок, который будет заполняться для детей шаблонов:

<html> 
    <!-- base.html --> 
    ...... 
    {% block content %} 
    {% endblock %} 
    <!-- You include your js/css here --> 
    <script type="text/javascipt" src="{{ STATIC_URL }}jquery.js"> 
    <link rel="stylesheet" type="text/css" href="mystyle.css"> 
</html> 

то для всех шаблонов, расширить base.html и переопределить block content как так:

<!-- sub.html --> 
{% extends "base.html" %} 
{% block content %} 
     <!-- You current page html goes here --> 
{% endblock %} 

В таким образом, то, что вы включили в base.html, будет автоматически унаследовано и доступно в sub.html.

+0

Может ли base.html быть открытым? Например, может ли он завершиться ссылкой css без тега? – Pig

+0

Ну, наследование шаблонов может происходить между любыми двумя или более шаблонами. Пока вы чувствуете, что есть что-то общее для двух шаблонов, и было бы разумно извлечь общую часть в одну, вы можете это сделать. Вы даже можете сделать 'template 3' extends' template2' extends 'template1'. –

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