2015-09-04 13 views
1

У меня есть эта проблема, надеюсь, у вас есть идея, как ее решить. В шаблонах Django, которые не являются «дочерним» шаблоном базового шаблона, я хотел бы использовать модули javascript, которые находятся в базовом шаблоне, то есть в JQuery. Есть ли способ достичь этого без нагрузки снова все библиотеки javascript, которые мне нужны?Javascript модули отсутствуют шаблоны, не унаследованные от базы Django tempate

Допустит base.html

{% block js %} 
<script src="some/path/to/jquery.js"></script> 
{% endblock $} 

some_component_base_template.html

// Not inherited from base.html 

{% block somejsblock %} 
<script> 
$(document).ready(function(
    //some code I need 
)) 
</script> 
{% endblock %} 

Этот блок HTML может быть вставлен в любом месте в шаблоне с помощью шлицев пользователя через механизмы, именно поэтому он Безразлично» t наследует from base.html, если я создаю другой заголовок, каждый раз, когда этот блок html загружается, javascripts также будут загружены.

ответ

0

Если вы не наследуете базу, вы должны создать заголовок и добавить ссылку туда вручную.

+0

Это то, чего я хочу избежать, потому что это часть html, которая будет повторяться по всему сайту, и в этом случае я буду использовать google api, всякий раз, когда он загружается более одного раза, я получить ошибку или предупреждение javascript. Не доступны ли модули javascript по всему миру? –

+0

В этом случае лучшим ответом является Даниэль Роземан. Вы должны положить в свою базу только все материалы глобалов. Если вам нужны разные вещи, которые будут повторяться в приложении, лучшее, что вы можете сделать, это создать «промежуточного» родителя, который простирается от базы и добавляет тезисы новых частей htmls. – acostela

+0

«это часть html, которая будет повторяться по всему сайту»: тогда, очевидно, она должна быть частью базового шаблона, как сказал Даниэль Роземан, - вот что такое шаблон base.html для: частей, которые вы хотите использовать _each и every_ template. –

2

Шаблон должен унаследовать от базы. Если в настоящее время в базе есть вещи, вы не хотите быть в некоторых других шаблонах, вы должны использовать промежуточный родитель, который сам наследует базу и какие некоторые шаблоны могут использовать, а другие - нет.