2010-12-16 12 views
2

Ich sende mehrere Formulare an eine Vorlage, und ich möchte alle erforderlichen Medien in die -Tag setzen. Einige Formulare benötigen möglicherweise dasselbe Medium (z. B. die gleiche JS-Datei). Daher möchte ich alle Medien vereinheitlichen, bevor Sie sie in die Datei <head> einfügen. Die Frage ist, wie mache ich das? Ich weiß, dass Sie zwei Medien vereinheitlichen können, indem Sie m1 + m2 tun, aber das wird in dem generischen Fall, in dem ich eine unbekannte Anzahl von Formularen habe, hässlich aussehen. Gibt es eine Abkürzung?Django: richtiger Weg, um eine Reihe von Medien zu gruppieren

Antwort

2

Der beste Weg, den ich finden konnte es tat Listenkomprehensionen mit und reduce:

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

Wonder, wenn es einen einfacheren Weg, ...

0

Was passiert, wenn Sie nur {{ form.media }} für jedes Formular verwenden, und verknüpfen Sie die Medien in der Form Meta? Ich glaube mich daran zu erinnern, dass ich darauf geachtet habe, dass nichts zweimal eingefügt wurde, aber es ist eine Weile her.

Haben Sie das schon probiert?

+0

Ich bin mir nicht sicher, ob ich verstehe - was meinst du mit "die Medien in der Form Meta verbinden"? – olamundo

+0

Entschuldigung, mein Fehler - es sieht so aus, als ob es eine 'Media' Klasse gibt, die Sie verwenden wollen (und benutzen): http://docs.djangoproject.com/en/dev/topics/forms/media/ – girasquid

Verwandte Themen