The JSON encoder used to convert querysets to JSON responses is hand-cranked and incomplete. It recently caused an issue where we had a decimal field in a queryset and our encoder didn't know what to do with it, so it failed with a mostly incomprehensible error. objtojson() in toastergui/views.py is the main offender, closely followed by the code locations which call that function. Rather than use objtojson() and friends, we should use the Django JSON encoder as far as possible, and maybe even the Django JSON HTTP response classes when encoding the body of a response.