【问题标题】:How to serialize a RawQuerySet in Django?如何在 Django 中序列化 RawQuerySet?
【发布时间】:2011-08-11 11:36:23
【问题描述】:

我面临需要序列化 ​​RawQuerySet 的问题。它没有价值功能。我还为每个对象添加了一个小数注释,这是一个字段的计数。

示例代码:

cow_query = """SELECT cow.* (count(leg.id) / 4) as 'percentage' FROM cow JOIN leg ON leg.cow_id = cow.id;"""  
cows = Cow.objects.raw(cow_query)  
json = simplejson.dumps(cows) # this will not work
return HttpRepsonse(json)

序列化它的最佳方法是什么。 我希望使用注释序列化牛对象属性。最简单的可能只是将所有内容转换为 dict 和列表等,然后调用 simplejson.dumps,但这可能不是最有效的?

更新: 刚刚尝试使用 http://docs.djangoproject.com/en/dev/topics/serialization/#id2 但这不会将百分比添加到 json 结果中。

【问题讨论】:

    标签: python django json serialization


    【解决方案1】:

    simplejson.dumps([dict(cow.__dict__) for cow in cows]) 怎么样?如果您的 Cow 模型只有简单的字符串或整数值,这应该可以工作,否则您需要手动处理更复杂的类型(例如,DateTimeField 需要为 unicode-ed 用于 simplejson)。

    【讨论】:

    • 这应该可以,但最后我去自定义dict并使用simplejson.dumps返回json。因为我最终只需要 1 或 2 个属性。不过,这回答了问题,因此您的回答被接受了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2014-12-29
    • 2017-10-15
    • 2011-07-06
    • 2016-12-15
    • 2018-05-18
    • 2011-11-21
    相关资源
    最近更新 更多