Django中的JSON Serializable错误

时间:2016-04-22 16:39:55

标签: python json django django-queryset serializable

两行代码如下:

record = Record.objects.get(id = request.GET.get('record_id'))
print record.unique_number

尝试打印时抛出错误,如下所示:

<Record: Record object> is not JSON serializable

回溯如下:

Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 235, in get_response
    response = middleware_method(request, response)
  File "/Library/Python/2.7/site-packages/django/contrib/sessions/middleware.py", line 50, in process_response
    request.session.save()
  File "/Library/Python/2.7/site-packages/django/contrib/sessions/backends/db.py", line 82, in save
    obj = self.create_model_instance(data)
  File "/Library/Python/2.7/site-packages/django/contrib/sessions/backends/db.py", line 68, in create_model_instance
    session_data=self.encode(data),
  File "/Library/Python/2.7/site-packages/django/contrib/sessions/backends/base.py", line 88, in encode
    serialized = self.serializer().dumps(session_dict)
  File "/Library/Python/2.7/site-packages/django/core/signing.py", line 95, in dumps
    return json.dumps(obj, separators=(',', ':')).encode('latin-1')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 250, in dumps
    sort_keys=sort_keys, **kw).encode(obj)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 207, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 270, in iterencode
    return _iterencode(o, 0)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/encoder.py", line 184, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: <Record: Record object> is not JSON serializable

Record类在models.py中定义如下:

class Record(models.Model):
    unique_number = models.CharField(max_length = 255)
    year = models.SmallIntegerField()

    class Meta:
        app_label = 'demo'
        db_table = 'record'

我该如何解决这个问题?任何帮助,将不胜感激。感谢。

0 个答案:

没有答案