Django1.5和1.6与json的兼容性

时间:2014-04-09 07:25:40

标签: json django

我有一个视图,从Arsawh的fullcalendar jquery插件中描述的事件发回json数据。使用this工作正常。但在安装Django 1.6.2后,我得到了以下错误

Internal Server Error: /customer/todaysfeed/
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 114, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/avlahop/development/django/rhombus2/rhombus/utils/decorators.py", line 18, in wrapper
    return view(request, *args, **kw)
  File "/home/avlahop/development/django/rhombus2/rhombus/customer/views.py", line 103, in todaysfeed
    json_list = json.dumps(json_list, cls=DjangoJSONEncoder)
  File "/usr/lib/python2.7/dist-packages/simplejson/__init__.py", line 369, in dumps
    **kw).encode(obj)
TypeError: __init__() got an unexpected keyword argument 'namedtuple_as_object

可能有什么不对?这又是代码

if request.is_ajax():
    doctor = Doctor.objects.get(user=request.user)
    try:
        start = datetime.fromtimestamp(int(request.GET.get('start',''))).replace(tzinfo=utc)
        end = datetime.fromtimestamp(int(request.GET.get('end',''))).replace(tzinfo=utc)
    except ValueError:
        start = datetime.now().replace(tzinfo=utc)
        end = datetime.now().replace(tzinfo=utc)

    entries = Entry.objects.filter(start__gte=start, end__lte=end, creator=doctor)
    json_list = []
    for entry in entries:
        id=entry.id
        title=str(entry.patient)
        start=entry.start
        end=entry.end
        color= doctor.color if doctor.color else "blue"
        allDay=False

        item = dict(id=id, title=title, start=start, end=end, allDay=allDay, color=color)
        json_list.append(item)

    json_list = json.dumps(json_list, cls=DjangoJSONEncoder)
    return HttpResponse(json_list, content_type='application/json')
编辑:发现它!!我是Clamsy,我正在导入旧版本的json。现在一切都很好用了import json。谢谢!

1 个答案:

答案 0 :(得分:0)

This answer应该有帮助。

简而言之,您已经在the release notes

中提到了一个系统simplejson vs Django打包的json冲突