is not JSON serializable

153 views
Skip to first unread message

Michael Samoylov

unread,
Sep 13, 2006, 12:31:02 PM9/13/06
to Django users
Hi. I'm fighting with AJAX-based forms and dev process is stalled
because of such error:

Exception Type: TypeError
Exception Value:
'\xd0\x9e\xd0\xb1\xd1\x8f\xd0\xb7\xd0\xb0\xd1\x82\xd0\xb5\xd0\xbb\xd1\x8c\xd0\xbd\xd0\xbe\xd0\xb5
\xd0\xbf\xd0\xbe\xd0\xbb\xd0\xb5.' is not JSON serializable
Exception Location:
/usr/lib/python2.4/site-packages/django/utils/simplejson/encoder.py in
default, line 258

My code:

def registerAjax(request):
"""Allows user to register with CAPTCHA via AJAX call"""
if request.POST:
manipulator = EmailManipulator(request)
redirect_to = request.REQUEST.get(REDIRECT_FIELD_NAME, '')
errors = manipulator.get_validation_errors(request.POST)
if not errors:
new_data = request.POST.copy()
try:
manipulator.save(new_data)
return HttpResponse(simplejson.dumps(('success',
redirect_to)), 'text/javascript')
except SMTPException, e:
return HttpResponse(simplejson.dumps(e),
'text/javascript')
else:
return HttpResponse(simplejson.dumps(errors),
'text/javascript')

But this code works perfect (returns json list of error messages)!

@login_required
def editInfoAjax(request):
if request.POST:
u = request.user
manipulator = Account.ChangeManipulator(u.id)
new_data = request.POST.copy()
errors = manipulator.get_validation_errors(new_data)
if not errors:
manipulator.do_html2python(new_data)
manipulator.save(new_data)
return HttpResponse(simplejson.dumps({'status':
'success'}), 'text/javascript')
else:
return HttpResponse(simplejson.dumps(errors),
'text/javascript')

I use django dev version from svn repository. I have LANGUAGE_CODE =
'ru' (have tryed to switch it to 'en' of course and got:

Exception Type: TypeError
Exception Value: 'This field is required.' is not JSON serializable

Any ideas? Thanks for your possible help

Michael Samoylov

unread,
Sep 13, 2006, 1:38:04 PM9/13/06
to Django users
The solution is:

return HttpResponse(simplejson.dumps("%s" % errors), 'text/javascript')

Michael Samoylov

unread,
Sep 14, 2006, 5:14:16 AM9/14/06
to Django users
The real solution and patch: http://code.djangoproject.com/ticket/2727/

Reply all
Reply to author
Forward
0 new messages