Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 621
Donald Mannise Avatar asked Oct 18 '22 22:10

Donald Mannise


1 Answers

Just use the safe filter:

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

n.b. you can also do this

var apptData = {{ appt | safe }};
like image 152
2ps Avatar answered Oct 20 '22 23:10

2ps