Django-fr

Forum

#1 19-09-2014 15:51:46

Arnaud
Membre
Inscription : 16-06-2012
Messages : 14

Inclusion multiples de fichiers html

Bonjour,

Je suis face à un problème d'apparence simple, mais pour lequel je ne trouve pas de solution simple.
En gros, je génère des fichiers html à l'aide de ipython notebook, il y en a plusieurs et le nombre va en croissant.
J'aimerais partager ces fichiers sur mon site django, dans un certain ordre ( tutoriel ), sans passer par un nbviewer externe, et j'ai donc pensé à faire une série de "include" dans un template pour tous ces fichiers, ce que je ne trouve pas forcément optimal.
Copier/coller le code de chaque fichier html dans mon éditeur tinymce dans django-admin n'est pas super efficace non plus.

Peut-être que je prends le problème à l'envers, en tout cas je n'arrive pas à prendre du recul pour une meilleure solution.

Si l'un d'entre vous a quelque chose de mieux à me proposer, je lui en serais très reconnaissant smile

Merci d'avance

Arnaud

Hors ligne

#2 22-09-2014 09:50:53

Xavier Ordoquy
Administrateur
Lieu : Puteaux, France
Inscription : 12-10-2011
Messages : 312
Site Web

Re : Inclusion multiples de fichiers html

Le mieux est peut-être de te faire un template tag qui va lire le repertoire dans lequel tu stockes les fichiers html et qui ira les lire et les rendre. Si tu veux contrôler l'ordre d'apparition, tu peux jouer sur les noms (0001_premier.html, 0002_second.html...)

Hors ligne

#3 25-09-2014 12:04:42

Arnaud
Membre
Inscription : 16-06-2012
Messages : 14

Re : Inclusion multiples de fichiers html

Ok, merci, je vais essayer de préparer un template tag aux petits oignons pour voir.

Hors ligne

#4 28-10-2014 13:09:16

Arnaud
Membre
Inscription : 16-06-2012
Messages : 14

Re : Inclusion multiples de fichiers html

Bonjour,

Je n'ai eu que peu de temps jusque aujourd'hui, mais j'ai trouvé une solution.
Après avoir testé un template tag, je n'ai pas été satisfait de mon résultat, peut-être suis-je parti dans la mauvaise direction.

En fait il y a plus simple :

Dans views.py :

def ipython(request):
    tutos=["ipython/" +  f for f in os.listdir("ipython")]
    return render_to_response('ipython.html', locals())

Dans le template :

{% for tuto in tutos %}
    {% include tuto %}
{% endfor %}

Cela fonctionne parfaitement bien, il ne me reste plus qu'à faire la pagination.

Merci !

Hors ligne

Pied de page des forums