[Django-es] Pasar valores a javascript

1,255 views
Skip to first unread message

Martín Muñoz

unread,
May 12, 2010, 11:36:21 AM5/12/10
to djan...@googlegroups.com
Hola,

Mi pregunta es ¿Cual les parece la forma más adecuada de pasarle valores al javascript?

Mi intención es abrir un url usando un popup es decir window.open, sin embargo no deseo incrustar js en el html lo cual me impide usar el tag {% url %}

¿Que solución darían ustedes?
Es decir ¿Cual les parece la forma correcta de pasar urls al javascript?

Tomando en cuenta criterios como son claridad del código y separación de la lógica y la presentación.


Otro caso que no se me está presentando en este momento, pero aprovecho para preguntar es:
Suponiendo que quisiera pasar un arreglo al javascript desde el view

¿Cual sería la forma mas adecuada?
¿Debería usar simplemente ajax aún en el caso de que los valores no van a cambiar dinamicamente?


Saludos

--
Bachiller en Sistemas Martín Muñoz del Río

--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.

Eduard Diaz

unread,
May 12, 2010, 2:48:31 PM5/12/10
to djan...@googlegroups.com
Personalmente en este tipo de casos meto el javascript en el template existe una app llamada django-compress que los cachea y los comprime que va bastante bien

pero si lo que quieres es generar javascript dinámicamente, te has mirado la documentación sobre como servir contenido no html, como por ejemplo:

http://docs.djangoproject.com/en/dev/howto/outputting-csv/
http://docs.djangoproject.com/en/dev/howto/outputting-pdf/

Es decir te puedes hacer una plantilla con solo el codigo javascript y meter las variables del contexto generadas por la vista.

En la página donde llamas al javascript solo tienes que poner la url de la vista que devuelve el javascript.

algo asi como:

return HttpResponse(el_texto_del_codigo_js, mimetype=’text/javascript’)

para la vista y en el template

{% block headjs %}
<script type="text/javascript" url="/url_de_la_vista/"></script>
{% endblock %}


Un saludo
--
//////////////////////////////////////////////////////////////////////////
Eduard Díaz
www.scopia.es
SCOPIA VISUAL INTERFACES SYSTEMS S.L.

Tel. 625 055 126, 933 171 771

edu...@scopia.es
event...@gmail.com
//////////////////////////////////////////////////////////////////////////

Antoni Aloy

unread,
May 12, 2010, 2:53:59 PM5/12/10
to djan...@googlegroups.com
Hola!

Puedes añadir e tu plantilla código javascript

<script type="text/javascript">
var ulr = "{% url tu-url %}";
// y a partir de aquí pones el js
</script>


2010/5/12 Eduard Diaz <event...@gmail.com>:
--
Antoni Aloy López
Blog: http://trespams.com
Site: http://apsl.net

Martín Muñoz

unread,
May 12, 2010, 2:54:21 PM5/12/10
to djan...@googlegroups.com
Hola,

Gracias por la respuesta, probaré lo que indicas, estaré comentando como me va.

Saludos
Reply all
Reply to author
Forward
0 new messages