所以我有这种情况,我希望序列化具有非模型值的模型。我得到了模型的序列化[查询集和单个模型本身],但试图将其与非模型值结合起来似乎有问题。
例如我想通过请求的User
JSONify status
。
假设model_to_JSON
做model => 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'})
我可以通过首先在转换后的model-json上执行loads
来做几个黑客攻击。但那就是这种hacky方式和如此多的时间只是浪费在dumps => loads =>转储
第二个选项是通过执行单个转储进行字符串连接,然后通过剥离最左边的字符串的'}'和最右边的字符串的'{'和','来连接字符串。
Django序列化程序非常专门针对模型/查询集编写,因此我无法真正覆盖它们。
之前有人遇到过这个问题以及你可以分享的任何解决方案
答案 0 :(得分:0)
您可以查看Django Full Serializers,这是我很久以前使用的方法。
另一种选择是简单地编写自己的序列化函数,它允许您传入属性名称(将在序列化时查找)。我也是这样做的。如果你采用这种方法,请注意已经有一个django函数model_to_dict
,它执行预序列化。
第三种方法可能是使用django的表单作为序列化的中间件:如果您可能反馈用户的数据,这可能很有用。