2010-08-23 19 views
9

¿Hay alguna manera de agregar etiquetas de plantilla a los archivos javascript y css? Lo usaría para cualquier cosa, desde pasar URL a enlaces de URL de medios (rutas de imagen, etc.) a javascript condicional basado en permisos de usuario.Django - Etiquetas de plantilla en archivos javascript y css

Acabo de pensar que quizás pueda servirlo como si fuera una plantilla, pero tengo la url como mi archivo javascript. ¿Es esa la única forma de hacer algo así? Si es así, probablemente no funcionaría con mi generador de medios, por lo que probablemente querría una solución mejor si hubiera una.

Respuesta

0

Su idea es la forma correcta de hacerlo. Si desea aprovechar las herramientas de plantilla de Django, la forma más fácil es servir el archivo JS como una plantilla. Vea this question para una situación como la suya.

0

Puede servir cualquier tipo de contenido como una plantilla, no tiene que ser HTML. Sin embargo, es posible que no pueda servirlo con el resto de su contenido estático, dependiendo de su configuración.

Una opción, si solo quiere reemplazar cosas como las URL de los medios, es "compilar" estas plantillas en archivos estáticos que puede servir. Sin embargo, esto no funcionará para nada que sea condicional basado en los permisos del usuario actual. Tendrá que escribir un script para llamar al django.template.loader.render_to_string y escribir el resultado en un archivo cada vez que implemente o cambie las URL de los medios, etc.

0

En cuanto al contenido dinámico dentro de los archivos JS, debería crear una plantilla, como los otros dijeron.


Pero se puede conectar muy fácilmente archivos CSS y JS de plantillas de páginas específicas usando django-sekizai. (Lo uso como parte de django-cms, pero funciona solo).

Le permite, dentro de una plantilla de página normal, definir los recursos estáticos necesarios de la plantilla en un bloque. Hay un bloque para CSS y otro para JS. Estos bloques se pueden imprimir en su base.html. También maneja duplicados, por lo que no tiene que preocuparse por agregar los mismos archivos varias veces. Vea el usage document.

Con este sistema, no enviará ningún JS o CSS restringido, ya que django solo ejecutará plantillas autorizadas, y el contenido nunca se agregará a los bloques JS y CSS.

1

¿Qué hay de la definición de las variables JavaScript y CSS atributos de dentro su plantilla Django HTML, entre guión y estilo etiquetas? Sé que suena como un truco, pero me parece ordenado, ya que esto te permitirá controlar tus variables dinámicas desde un solo punto.

Cuestiones relacionadas