Donald Mannise Donald Mannise - 16 days ago 6
JSON Question

Pass python/django variable into javascript as JSON?

Woking on personal project website with django 1.9 and python 3.4. I am using FullCalendar. The idea is to pass a set of appointment objects into the html page containing the javascript for the calendar. But right now, I am just trying to pass a single default appointment.

In views.py I have the following:

appt = json.dumps({ "title": "meeting", "start": "2016-11-20"});
return render(request, 'healthnet/profile_patient.html', {'patient': patient, 'appt': appt_set})


In profile_patient.html:

<script>

var data = jQuery.parseJSON("{{appt}}");

var events;
events = [];
events.push(data);


$(document).ready(function() {

$('#calendar').fullCalendar({
editable: true,
eventLimit: true, // allow "more" link when too many events
events: events
});
});
</script>


appt
is not getting properly parsed I believe. When the web page is loaded, the calendar does not display at all.

When I substitute
appt
with the direct string, it does work:

var data = jQuery.parseJSON('{"title": "meeting", "start": "2016-11-20"}');


When I call
alert("{{appt}}");
I get the following:
enter image description here

So there's something wrong with the way I'm using ths varibale. Any ideas?

2ps 2ps
Answer

Just use the safe filter:

var data = jQuery.parseJSON('{{appt | safe}}');

n.b. you can also do this

var apptData = {{ appt | safe }};