0

所以我有这种情况,我想用非模型值序列化模型。我得到了模型的序列化[查询集和单个模型本身],但试图将它与非模型值结合起来似乎有问题。例如,我想对User一些status请求进行 JSONify。假设model_to_JSONmodel=>JSON,所以

# it messes the 'user' json by further escaping it, 
#which becomes unparseble on client since its a string now
dumps({ 'user': model_to_JSON(user_obj), 'status': 'ok'})

我可以做几个 hack,首先loads在转换后的 model-json 上做。但这是一种很老套的方式,浪费了很多时间在 dumps=>loads=>dumps 第二个选项是通过进行个人转储进行字符串连接,然后通过剥离最左边字符串的“}”和“{”来连接字符串最右边的字符串带有','。

Django 序列化程序是专门针对模型/查询集编写的,因此我无法真正覆盖它们。

那么以前有没有人遇到过这个问题以及您可以分享的任何解决方案

4

1 回答 1

0

您可以查看Django Full Serializers,这是我很久很久以前使用的方法。

另一种选择是简单地编写您自己的序列化函数,它允许您传入属性名称(将在序列化时查找)。我也做过这个。如果您采用这种方法,请注意已经有一个 django 函数model_to_dict,它可以进行预序列化。

第三种方法可能是使用 django 的表单作为序列化的中间体:如果您也可能要反序列化从用户返回的数据,这可能很有用。

于 2013-02-11T03:12:00.277 回答