2010-08-23 22 views
9

C'è un modo per aggiungere tag modello in file javascript e css? Lo userei per qualsiasi cosa, passando da url a link url multimediali (percorsi immagine, ecc.) A javascript condizionato in base alle autorizzazioni dell'utente.Django - Tag modello in file javascript e css

Ho solo pensato che forse posso servirlo come se fosse un modello ma ho l'url come il mio file javascript. È questo l'unico modo per fare qualcosa del genere? Se è così, probabilmente non funzionerebbe con il mio generatore di file multimediali, quindi probabilmente vorrei una soluzione migliore se ce n'era uno là fuori.

risposta

0

La tua idea è la strada giusta da percorrere. Se vuoi sfruttare gli strumenti di modello di Django, il modo più semplice è quello di pubblicare il file JS come modello. Vedi this question per una situazione come la tua.

0

Puoi servire qualsiasi tipo di contenuto come un modello, non deve essere HTML. Tuttavia, potresti non essere in grado di servirlo con il resto del contenuto statico, a seconda della configurazione.

Un'opzione, se si desidera solo sostituire elementi come gli URL multimediali, è quella di "compilare" questi modelli in file statici che è possibile servire. Ciò non funzionerà per tutto ciò che è condizionato in base alle autorizzazioni dell'utente corrente, però. Dovrai scrivere uno script per chiamare django.template.loader.render_to_string e scrivere il risultato su un file ogni volta che distribuisci o modifichi URL multimediali, ecc.

0

Per quanto riguarda il contenuto dinamico all'interno di file JS, dovresti creare un modello, come dicevano gli altri.


Ma si può facilmente allegare file JS e CSS per modelli di pagina specifici utilizzando django-sekizai. (Lo uso come parte di django-cms, ma funziona anche da solo.)

Consente, all'interno di un modello di pagina normale, di definire le risorse statiche necessarie del modello in un blocco. C'è un blocco per CSS e uno per JS. Questi blocchi possono quindi essere stampati nel tuo base.html. Gestisce anche i duplicati, quindi non devi preoccuparti di aggiungere gli stessi file più volte. Vedi lo usage document.

Con questo sistema, non invierai alcun JS o CSS limitato, poiché django eseguirà solo modelli autorizzati e il contenuto non verrà mai aggiunto ai blocchi JS e CSS.

1

Come sulla definizione delle variabili JavaScript e CSS attributi da all'interno il modello Django HTML, tra sceneggiatura e stile tag? So che sembra un trucco, ma mi sembra un po 'ordinato, in quanto ciò ti consentirà di controllare le tue variabili dinamiche da un unico punto.