2010-12-16 180 views
2

J'envoie plusieurs formulaires à un modèle, et je veux mettre tous les médias requis dans la balise <head>. Certains formulaires peuvent nécessiter le même média (par exemple, le même fichier JS), donc je voudrais unifier tous les médias avant de les mettre dans le <head>. La question est, comment puis-je faire cela? Je sais que vous pouvez unifier deux médias en faisant m1 + m2, mais cela apparaîtra moche dans le cas générique où j'ai un nombre inconnu de formes. Y a-t-il un raccourci?Django: manière correcte de grouper un tas de médias

Répondre

2

La meilleure façon que je pouvais trouver le faisait en utilisant compréhensions de liste et reduce:

media = reduce(lambda x, y: x + y, [form.media for form in forms]) 

Je me demande s'il y a un moyen plus facile ...

0

Que se passe si vous utilisez juste {{ form.media }} pour chaque forme, et lier les médias dans le formulaire Meta? Je me souviens d'avoir veillé à ne rien insérer deux fois, mais ça fait longtemps.

Avez-vous déjà essayé?

+0

Je ne suis pas sûr de comprendre - que voulez-vous dire par "relier les médias dans le formulaire Meta"? – olamundo

+0

Désolé, mon erreur - il semble qu'il y ait une classe 'Media' que vous voulez utiliser (et que vous utilisez): http://docs.djangoproject.com/fr/dev/topics/forms/media/ – girasquid