2011-09-05 46 views
0

如果我想序列化它,用戶定義的類應該實現什麼?在我的情況下,我想序列化一個名爲序列化用戶定義類的方法是什麼?

comment_with_vote = [] 

其中的元素是定義如下的對象。

評論是一個django模型。

serializers.serialize('json', comment_with_vote, ensure_ascii=False) 

回報AttributeError的: 'CommentWithVote' 對象有沒有屬性 '_meta'

json.dumps(comment_with_vote, ensure_ascii=False) 

收益類型錯誤:< ...在0x046ED930 CommentWithVote對象>不是JSON序列化

+1

您已經提出8個問題,並且沒有接受任何答案。直到你這樣做,我至少不會回答這個問題。 –

+0

對不起,我不熟悉stackoverflow的'風格'。我接受了所有我認爲對我有幫助的答案。感謝您的提醒,並且您的答案也一樣。 – zidianqs

回答

0

serializers.serialize只對於Django模型,你的類不是一個模型 - 它只包含一個引用。不幸的是,json.dumps不知道模型或你的容器類。

我會以不同的方式來解決這個問題。我沒有單獨的CommentWithVote類,而只是將選票註釋到標準Comment中。序列化程序仍然不會了解投票屬性,因爲它不是字段,但可以這樣做:序列化爲標準Python字典,添加投票,然後轉換爲JSON。

comment_list = serializers.serialize('python', comments) 
for comment in comments: 
    comment['fields']['vote'] = calculate_vote() 
comment_json = json.dumps(comments) 
相關問題