Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

838
Views
¿Cómo usar las variables de contexto pasadas desde Django en javascript?

Tengo un método en views.py de la siguiente manera:

 def index(self, request): initial = get_initial() context = {"context" : initial_topics} template = loader.get_template('index.html') return HttpResponse(template.render(context, request))

¿Cómo accedo al dictado de "contexto" en javascript? Como en mi $(función(){});

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Puede acceder a la variable de contexto dentro de la etiqueta del script HTML.

Aún así, se aplican algunas reglas:

  1. Si la variable de contexto es una cadena, encierre la variable de contexto entre comillas.
  2. Si la variable de contexto es un dictado o una lista, conviértalos a json en su vista y use el filtro safe :

Advertencia: nunca use un filtro safe en datos que no sean de confianza (como los datos enviados por un usuario). Siempre desinfecte los datos (escape los caracteres no seguros) antes de usar el filtro safe . Lea sobre los ataques XSS para obtener más información.


Ejemplo:

 <script> $(function(){ var my_str = "{{ my_str }}"; var my_dict = {{ my_dict|safe }}; // no quotes here var my_list = {{ my_list|safe }}; // no quotes here }); </script>

Debe convertir las variables dict y list a json en sus vistas porque si hay palabras clave específicas de Python, como True o False o None en el dict, JS no las entenderá y generará un error.

En JS, las palabras clave equivalentes son true , false y null . Por lo tanto, convertir dictados y listas a json transformará los datos en un formato compatible con JS.

Ejemplo:

 import json def my_view(...): my_list = [...] my_dict = {...} context = {'my_list': json.dumps(my_list), 'my_dict': json.dumps(my_dict)} return ...
 var my_list = {{ my_list|safe }}; var my_dict = {{ my_dict|safe }};
about 4 years ago · Santiago Trujillo Report

0

Si el código javascript se encuentra en la plantilla html que se está procesando, puede usarlo de la forma habitual {{ context }} . De lo contrario, declare un global en la plantilla html y acceda a ese global desde su archivo js separado.

about 4 years ago · Santiago Trujillo Report

0

Si desea insertar en Javascript, asegúrese de usar escapejs, y en casos más avanzados, es posible que deba usar JSON.parse;

 var context = "{{ context }}"

Si todavía tiene problemas, intente;

 var context = JSON.parse("{{ context|escapejs }}");

El método JSON.parse() analiza una cadena JSON y construye el valor u objeto de JavaScript descrito por la cadena. Se puede proporcionar una función de reactivación opcional para realizar una transformación en el objeto resultante antes de que se devuelva. doc

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!