Форум сайта python.su
Добрый день.
Пытаюсь прикрутить 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)\/"} ] }
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
Отредактировано gonnpkf (Апрель 25, 2013 14:47:07)
Офлайн
jtable - это круто. Но почему мы не использовать общепринятый формат json.
Как я вижу что стандартных средств хватает.
http://docs.python.org/2/library/json.html
Офлайн
Стандартных средств как раз не хватает. Точнее json.dumps() уже финальная часть, а до этого нужно было еще несколько шагов сделать. Проблема уже решена, спасибо.
Офлайн