Каков рекомендуемый способ сериализации данных django в json для работы с jqgrid? - PullRequest
0 голосов
/ 23 ноября 2010

Я провел весь вечер, борясь с получением jsonReader: правильно настроил jqgrid, чтобы соответствовать выводу JSON возможностей сериализатора django. С тех пор я устал от попыток и решил, что должен просто сделать вывод, что jqgrid хочет, чтобы json был включен по умолчанию. Мой план состоит в том, чтобы написать представление, которое формирует строку, которая выглядит так, как того хочет jqgrid. Мне это кажется немного уродливым (т. Е. Много ручного форматирования JSON), но я думаю, что это, вероятно, самый расширяемый маршрут в будущем, если я решу использовать больше функций jqgrid. Каков рекомендуемый способ получения отформатированного JSON из Django? Каков рекомендуемый Django способ выполнить то, чего я достигну, создав представление, подобное приведенному ниже примеру?

def serializedData(request):
    querySet = Model.objects.filter(date=None).order_by('id')
    data = '{'
    for row in querySet:
        # go through each item and make a pretty json row and add it to data
    data += '}'
    return HttpResponse(data)

Ответы [ 3 ]

0 голосов
/ 23 ноября 2010

Вы, вероятно, должны проверить некоторые из доступных здесь платформ сериализации / API:

  • django-pneon , которые мне не очень нравятся, поскольку сериализацияна мой взгляд, не такая гибкая.
  • SpitEat , которая создана для обеспечения очень гибкой сериализации, однако документ полностью устарел ... Я не могу найти время, чтобы это исправить.... но вы, вероятно, можете найти свой путь, прочитав тесты и исходный код (который полностью документирован и документ обновлен)
  • больше пакетов там
0 голосов
/ 08 июня 2011

В итоге я создал шаблон django, который соответствовал желаемому формату json.Оказалось, что это пара строк, поэтому я не могу себе представить, как это сделать проще, особенно когда имена все равно должны быть назначены вручную.

пример ... что-то похожее на это:

[{% for herp in derps %}
    { "id":"{{ herp.id }}___", "value":"{{ herp.value }}"}{% if not forloop.last %},{% endif %}
{% endfor %}]
0 голосов
/ 23 ноября 2010

Это будет делать:

from django.utils import simplejson
return HttpResponse(simplejson.dumps(data), mimetype="application/json")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...