【问题标题】:Serializing Django models with non-model values使用非模型值序列化 Django 模型
【发布时间】:2013-01-26 02:16:38
【问题描述】:

所以我有这种情况,我想用非模型值序列化模型。我得到了模型的序列化[查询集和单个模型本身],但试图将它与非模型值结合起来似乎有问题。 例如我想用一些 status 的请求 JSONify User。 假设 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'})

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

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

以前有没有人遇到过这个问题,你可以分享任何解决方案

【问题讨论】:

    标签: django json serialization


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-20
      • 2013-01-07
      • 2011-04-30
      • 2011-08-26
      • 1970-01-01
      • 2016-04-07
      • 2012-11-16
      • 2011-01-16
      相关资源
      最近更新 更多