Сериализация Django JSON со смешанными моделями Django и словарем - PullRequest
4 голосов
/ 24 декабря 2009

Кажется, я не могу найти хороший способ сериализации как Django Models, так и словарей Python вместе, я довольно часто возвращаю ответ json, который выглядит как

{
  "modified":updated_object,
  "success":true
  ... some additional data...
}

Достаточно просто использовать simplejson для сериализации dict или serializer.serialize Django для сериализации модели, но когда я смешиваю их вместе, я получаю ошибки.

Есть ли лучший способ сделать это?

Ответы [ 2 ]

10 голосов
/ 24 декабря 2009

Разве вы не можете просто преобразовать экземпляр модели в dict, присоединиться к другому dict и затем сериализовать?

from django.forms import model_to_dict

dict = model_to_dict(instance)
dict.update(dict2)

... Then serialize here ...

Не знаю, как быть "лучше" ...: -)

2 голосов
/ 31 июля 2013

Я использую это (где products это набор запросов):

response = {}
products_list = list(products.values('id', 'name', 'description'))
response['products'] = products_list
response['more_data'] = 'more, more, more, things'

json_data = json.dumps(response)

Используя этот метод, вы можете выбрать только те поля, которые вам нужны (сделать json и запрос к базе данных меньше).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...