2011-12-18 9 views
3

當序列化一個Django模型對象,格式是這樣的:在Django中自定義Json串行器的格式?

{ 
    "pk":1, 
    "model":"book", 
    "fields":{ 
     "name":"BookName", 
     "price":"48", 

難道是如果它是更直接的,就像這樣:

{ 
    "id":1, 
    "name":"BookName", 
    "price":"48", 

我只是不知道是否有一種簡單的方法做這個? Json數據將被髮送到諸如iPhone的移動設備,客戶對於例如模型的名稱或表格中的字段。

類似的帖子Django: custom serialization options?正在推薦給例如使用模板,但這是否意味着我需要爲所有模型創建模板?

還有一個問題是關於完全序列化,這與Django的內置序列化器相反,它只返回相關字段的主鍵值。我知道DjangoFullSerializers可以做到這一點,但它可以做到這兩個(自定義格式和完整的序列化)?

回答

6
from django.forms.models import model_to_dict 
model_to_dict(intance, fields=[], exclude=[]) 

使用此功能可以得到預期的結果。

+1

看來工作謝謝。如何完整序列化?另一個問題是,它是向客戶返回字典的一種好方法,例如iPhone而不是內置格式?我在問這是因爲我在想如果我們將web實現從django更改爲Ruby on Rails?保持原始的django json格式會很奇怪嗎?它看起來像RoR可以提供包括完整序列化的字典格式(我幾乎對RoR幾乎一無所知)。 – 2011-12-19 05:25:05