Django JSON可序列化错误

1 投票
2 回答
2465 浏览
提问于 2025-04-15 21:05

下面的代码出现了一个错误,提示信息是:

      File "/home/user/web_pro/info/views.py", line 184, in headerview,
      raise TypeError("%r is not JSON serializable" % (o,))
      TypeError: <lastname: jerry> is not JSON serializable

在模型代码中

  header(models.Model):
   firstname = models.ForeignKey(Firstname)
   lastname = models.ForeignKey(Lastname)

在视图代码中

  headerview(request):
       header = header.objects.filter(created_by=my_id).order_by(order_by)[offset:limit]


      l_array = []
      l_array_obj = []
      for obj in header:

           l_array_obj = [obj.title, obj.lastname ,obj.firstname ]
           l_array.append(l_array_obj)
      dictionary_l.update({'Data': l_array}) ; 
      return HttpResponse(simplejson.dumps(dictionary_l), mimetype='application/javascript')

这个错误是什么,怎么解决呢?

谢谢..

2 个回答

1

你有没有想过用Django自带的序列化功能呢?

2

简单来说,obj.lastname 是一个 Lastname 模型,而不是一个字符串。你可能需要这样做:

l_array_obj = [..., obj.lastname.value, .... ]

这样才能得到字符串的值,而不是模型对象。

撰写回答