2011-12-18 64 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