2011-12-18 5 views
3

При сериализации объекта Джанго модель, формат выглядит так:Настроить формат Json serializer в Django?

{ 
    "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

Кажется, что работает спасибо. Как насчет полной сериализации? Другой вопрос заключается в том, что это хороший способ вернуть dict к клиенту, например. iPhone вместо встроенного формата? Я спрашиваю об этом, потому что я думаю, что если мы изменим реализацию сети с django на Ruby on Rails? Было бы странно сохранять оригинальный формат django json? Похоже, что RoR может предоставить формат dict, включая полную сериализацию (я почти ничего не знаю о RoR). –

Смежные вопросы