2016-11-15 4 views
0

Salut tout le monde je crée une application avec 3 champs (html, css et js) les applications doivent intégrer ces 3 champs dans le modèle de mon application comme ça. J'utilise un espace réservé pour afficher ces champs.charger js fichier de l'application django-cms

<style type="text/css"> 
    {{instance.css_code|safe}} 
</style> 


{{instance.html_code|safe}} 


<div id="containerChart" style="height: 400px; min-width: 310px"></div> 

<script type="text/javascript"> 
    {{instance.js_code| safe }} 
</script> 

Quelle meilleure façon de le faire, par exemple charger le code JavaScript dans le pied de page (avec le reste du code javascript) et dans l'en-tête du code css

Comme par exemple si mon espace réservé a l'élément charge le champ js dans le pied de page .. etc

C'est possible!

Merci d'avance.

Répondre

1

J'utilise sekizai balises pour obtenir cette fonctionnalité.

Dans mon modèle de plug-in, j'ai quelque chose comme ceci:

{% load sekizai_tags %} 
{% addtoblock "css" %} 
<style type="text/css"> 
/* CSS */ 
</style> 
{% endaddtoblock %} 
{% addtoblock "js" %} 
<script type="text/javascript"> 
// javascript 
</script> 
{% endaddtoblock %} 

<!-- Rest of your HTML markup --> 

Puis, dans le base.html, j'ai ce pour le CSS (dans la tête):

{% render_block "css" postprocessor "cnk_ft1_cms.sekizai_processors.spaceless_post_processor" %} 

Et cela pour la JS (pour le pied de page):

{% render_block "js" %} 

Dans mon cas, je suis en train de traiter aussi le CSS ainsi. Vous pouvez positionner les éléments addtoblock n'importe où dans votre modèle HTML. Aussi, il y a de fortes chances que vous ayez déjà les balises sekizai configurées dans le template de base (comme c'est aussi le cas pour Django CMS).