Quiero recorrer una consulta Django en JavaScript, ejemplo: musics = Music.query.all().
Hice algo como esto:
const songs = [ {% for music in musics %} { id: "{{music.id }}", songName: "{{ music.title }}", poster: "{{ music.cover_image.url }}", } {% endfor %} ] Array.from(document.getElementsByClassName("songItem")).forEach((element, I) =>{ element.getElementsByTagName('img').src = songs[I].poster; })yo obtengo
TypeError no capturado: no se pueden leer las propiedades de undefined (leyendo 'poster'),
pero si uso el registro de la consola
console.log(element.getElementsByTagName('img').src = songs[I].poster);funciona en la consola.
Te falta un , en tu loop de piso. Por lo tanto, está recibiendo un error de sintaxis.
const songs = [ {% for music in musics %} {id: "{{music.id }}", songName: "{{ music.title}}", poster: "{{music.cover_image.url}}", }, // <-- HERE {% endfor %} ] Si desea convertir los datos de su objeto a json, también puede hacerlo en su vista y pasar la fecha json como una variable de plantilla en lugar de crear songs manualmente.