2011-04-23 35 views
3

我面臨的問題是我需要序列化一個RawQuerySet。它沒有值函數。我還爲每個對象添加了一個十進制註釋,這是一個字段的計數。如何在Django中序列化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) 

什麼是序列化的最佳途徑。 我想要使用註釋序列化的牛對象屬性。最簡單的方法可能就是將所有內容轉換爲字典和列表等,然後再調用simplejson.dumps,但這可能不是最高效的?

更新: 只是試圖使用http://docs.djangoproject.com/en/dev/topics/serialization/#id2,但這不會將百分比添加到json結果。

回答

3

simplejson.dumps([dict(cow.__dict__) for cow in cows])怎麼樣?如果您的Cow模型只有簡單的字符串或整數值,這應該起作用,否則您需要手動處理更復雜的類型(例如,對於simplejson,DateTimeField需要爲unicode -ed)。

+0

這應該工作,但最終我去定製的字典和使用simplejson.dumps返回json。因爲我最終只需要1或2個屬性。這回答了這個問題,所以你的答案被接受。 – 2011-04-28 06:14:32

相關問題