Pasando por un nuevo proyecto Django 3, novato en eso, lo siento si mi código no es tan limpio. El problema es cuando trato de renderizar el calendario... sin eventos, se carga muy bien, pero cuando los carga, deja de renderizar todo el calendario. La consola muestra un SyntaxError no capturado: token inesperado '{', pero no puedo encontrar el problema, tampoco hay una coma en mi bucle. Cualquier ayuda es bienvenida. Mi script de calendario:
<script> document.addEventListener('DOMContentLoaded', function () { var cUI = document.getElementById('calendar'); var c = new FullCalendar.Calendar(cUI, { themeSystem: 'bootstrap', headerToolbar: { left: 'prev,next today', center: 'title', right: '', }, events: { {% for v in vacation %} { title: "{{ v.reason }}: {{ v.starth }}-{{ v.endh }}", start: "{{ v.start | date:'Ymd' }}", end: "{{ v.end | date:'Ymd' }}", }, {% endfor %} }, }); c.render(); c.setOption('locale', 'es'); }); </script>Gracias
El error de sintaxis que ha cometido está en el objeto de events . Debido a que es un objeto javascript, espera entradas de clave-valor. Eso significa que debe proporcionar claves para sus artículos:
events: { // <-- the `{` shows that events is an object keyOne: { // <-- items in objects need keys (such as `keyOne`) title: "{{ v.reason }}: {{ v.starth }}-{{ v.endh }}", start: "{{ v.start | date:'Ymd' }}", end: "{{ v.end | date:'Ymd' }}", }, keyTwo: { title: "{{ v.reason }}: {{ v.starth }}-{{ v.endh }}", start: "{{ v.start | date:'Ymd' }}", end: "{{ v.end | date:'Ymd' }}", }, }, Ahora, si solo quisiera enumerar estos objetos dentro de una "variable" llamada events , entonces debería ser una matriz:
events: [ // <-- the `[` shows that events is an array { // <-- items in arrays do not need keys title: "{{ v.reason }}: {{ v.starth }}-{{ v.endh }}", start: "{{ v.start | date:'Ymd' }}", end: "{{ v.end | date:'Ymd' }}", }, { title: "{{ v.reason }}: {{ v.starth }}-{{ v.endh }}", start: "{{ v.start | date:'Ymd' }}", end: "{{ v.end | date:'Ymd' }}", }, },