Python 如何在Django中序列化RawQuerySet?

Python 如何在Django中序列化RawQuerySet?,python,django,json,serialization,Python,Django,Json,Serialization,我面临的问题是,我需要序列化一个RawQuerySet。它没有values函数。我还为每个对象添加了一个十进制注释,这是一个字段的计数 示例代码: 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)

我面临的问题是,我需要序列化一个RawQuerySet。它没有values函数。我还为每个对象添加了一个十进制注释,这是一个字段的计数

示例代码:

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)
序列化它的最佳方式是什么。 我想用注释序列化cow对象属性。最简单的方法可能是将所有内容转换为dict和list等,然后调用simplejson.dumps,但这可能不是最有效的方法

更新:
只是尝试使用,但这不会将百分比添加到json结果。

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

这应该可以工作,但最后我还是定制了dict并使用simplejson.dumps返回json。因为我最终只需要1到2个属性。这回答了问题,所以你的答案被接受了。