Пытаюсь прикрутить 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