Entonces, como se menciona en el título, estoy tratando de enviar mi objeto Django a JavaScript para poder masajearlo en la parte delantera. Déjame mostrarte el código (simplificado). vistas.py
def main_page(request): contents = Contents.objects.all() context = { 'contents' : contents } return render(request, 'main/home.html', context)modelo
{% for u in all_ans_us_paginated %} <div class="row"> <div class="col"> <div class="" id="{{u.id}}" onclick="DetailModal('{{u}}')"> </div> </div> </div> {% endfor %} ... <script> function DetailModal(u) { console.log('{{u.author}}'); console.log('{{u.body}}'); } </script> Mi intención es mostrar un modal cuando se activa el evento de clic. Pero dejando de lado la parte modal, no puedo pasar datos como parámetro a JavaScript.
*No quiero hacer ningún cambio en el código de python. ¿Es posible hacerlo solo con HTML y JavaScript?
** JSON.parse(u) no funcionará, porque u es una cadena.
EN DJANGO
from django.shortcuts import render from json import dumps def send_dictionary(request): # create data dictionary dataDictionary = { 'hello': 'World', 'geeks': 'forgeeks', 'ABC': 123, 456: 'abc', 14000605: 1, 'list': ['geeks', 4, 'geeks'], 'dictionary': {'you': 'can', 'send': 'anything', 3: 1} } # dump data dataJSON = dumps(dataDictionary) return render(request, 'main / app.js', {'data': dataJSON})EN JAVASCRIPT
archivo app.js:
var data = JSON.parse("{{data|escapejs}}"); for(var x in data){ // Write What You Want Here }si desea una vista limpia del código, utilícelo de esta manera porque javaScript considera los diccionarios como objetos separados
dataDictionary = [ ["Laugh", "Cry"], ["Even", "Odd"], ["Hot", "Cold"], ["Light", "Dark"], ["Opposite", "Same"], ["Far", "Near"], ["Give", "Take"], ["Night", "Day"], ["Import", "Export"], ["Hard", "Easy"], ["Never", "Always"], ["Late", "Early"], ["Less", "More"], ["Male", "Female"], ["Happiness", "Sadness"], ["Fast", "Slow"], ["Old", "Young"], ["Boy", "Girl"], ["Up", "Down"], ["Left", "Right"], ["Rich", "Poor"], ["Love", "Hate"], ["Inside", "Outside"], ["Bad", "Good"], ["Short", "Tall"], ]