Найти - Пользователи
Полная версия: Json b django
Начало » Django » Json b django
1
gonnpkf
Добрый день.
Пытаюсь прикрутить jtable к django, и пока безуспешно. Dj 1.5, py 3.3, локалка.
В таблицу строки должны подгружаться через ajax и json. Вид последнего должен быть специфическим относительно стандартного вывода django. А именно
{
 "Result":"OK",
 "Records":[
  {"PersonId":1,"Name":"Benjamin Button","Age":17,"RecordDate":"\/Date(1320259705710)\/"},
  {"PersonId":2,"Name":"Douglas Adams","Age":42,"RecordDate":"\/Date(1320259705710)\/"},
  {"PersonId":3,"Name":"Isaac Asimov","Age":26,"RecordDate":"\/Date(1320259705710)\/"},
  {"PersonId":4,"Name":"Thomas More","Age":65,"RecordDate":"\/Date(1320259705710)\/"}
 ]
}

Соответственно, нужно получить json подобного вида.
Пример кода найден в интернете, но, к сожалению, не работает на текущих версиях. Ошибка: ‘QuerySet’ object does not support item assignment . Попытки создать альтернативные словари и списки приводят к ошибке сериализации Json. Помогите, пожалуйста, решить эту проблему.
def AjaxHendler(request, type, *args, **kwargs):
    data = get_object_list(request)
    datares = alter_list_data_to_serialize(request, data)
    response = HttpResponse()
    response['Content-Type'] = "text/javascript"
    response.write(serializers.serialize("json", datares))
    return response
def alter_list_data_to_serialize(request, data):
    data['Result'] = 'OK'
    data['Records'] = data['fields']
    data['TotalRecordCount']= 23
    del data['objects']
    return data
def get_object_list(request):
    start = 0
    end = 10
    if request.GET.get('jtStartIndex') is True :
      start = int(request.GET['jtStartIndex'])
      if request.GET.get('jtPageSize') is True :
        end = int(request.GET['jtStartIndex']) + int(request.GET['jtPageSize'])
    if request.GET.get('jtSorting') is None :
        data=Logs.objects.all()[start:end]
    else:
        jtSorting = str(request.GET['jtSorting'])
        word = jtSorting.split()
        if word[1] == "DESC":
            data=Logs.objects.all().order_by('-' + word[0])[start:end]
        else:
            data=Logs.objects.all().order_by(word[0])[start:end]
    return data
likin
jtable - это круто. Но почему мы не использовать общепринятый формат json.
Как я вижу что стандартных средств хватает.
http://docs.python.org/2/library/json.html
gonnpkf
Стандартных средств как раз не хватает. Точнее json.dumps() уже финальная часть, а до этого нужно было еще несколько шагов сделать. Проблема уже решена, спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB