Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 21, 2015 05:52:47

parker77
Зарегистрирован: 2015-01-21
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

django ajax datatable как связать все

views.py
def ajaxjson(request):
testdata = ‘[’
import datetime
start = datetime.datetime(2014, 1, 2, 6, 35, 6, 764)
end = datetime.datetime(2015, 2, 2, 6, 55, 3, 381)
findsort1 = ‘startTime’, -1
findsort2 = ‘startTime’, 1
skip = 0
limit = 0
for data in coll.find({'startTime': {'$gte': start, ‘$lt’: end}}).sort().skip(skip).limit(limit):
testdata = testdata + ‘{’+ ‘“Time”: ’ + json.dumps(data.get('Time'), default = json_util.default) +', ‘+ ’“Number”: ‘ + json.dumps(data.get(’Number')) +', ‘+ ’“duration”: ‘ + json.dumps(data.get(’duration')) +', ‘+ ’}' + ‘, ’
testdata = testdata + ‘]’
testdata = testdata.replace(', ]',']')
return HttpResponse(testdata)
так откправляю json
на клиенте потом var data2 = JSON.parse(data);

хотел так оправить, но потом не знаю как на клиенте обрабоать return HttpResponse(json.dumps(testdata, default = json_util.default), content_type = “application/json”)


у клиента

<script type=“text/javascript”>


$(document).ready(function() {
$.get(“/ajax/”, function(data){
var data2 = JSON.parse(data);
var dataSet = ;
for(var i=0; i<data.length; i++){
var inumber = i+1;
var others = “ ”;
if (data2.Number!=null)
{
if (data2.Number.toString().length >5 )
{others = “Входящий”;}
}

dataSet.push([inumber,new Date(data2.Time.$date + (now.getTimezoneOffset() * 60000)).toString(“ddd MMM dd yyyy HH:mm:ss”),data2.Number,(new Date).clearTime().addSeconds(data2.duration).toString('H:mm:ss'),others]);
}

$('#example').dataTable( {
“createdRow”: function ( row, columns, dataIndex ) {


if ( columns == “700”) {
// alert('ok');
$('td', row).addClass('my1');
}
if(columns == “701”){
$('td', row).addClass('my2');
}
if(columns == “702”){
$('td', row).addClass('my3');
}
//это я так выделил номера 700-702 другим цветом. т.е все строку выделил другим цветом

},
“data”: dataSet,
“columns”: [
{ “title”: “№” },
{ “title”: “Time” },
{ “title”: “Number” },
{ “title”: “Duration”},
{ “title”: “others”}

],

} );

});

} );

</script>

таблицу брал с сайта http://www.datatables.net/

Офлайн

#2 Янв. 21, 2015 06:15:11

parker77
Зарегистрирован: 2015-01-21
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

django ajax datatable как связать все

теперь мне нужно добавить фильтр по дате(диапозон и передать в start = datetime.datetime(2014, 1, 2, 6, 35, 6, 764)
end = datetime.datetime(2015, 2, 2, 6, 55, 3, 381) ), и потом ответ отдать ajax и перегрузить таблицу
не могу разобраться помоги, уже неделю мучаюсь(((
<script type=“text/javascript”>
$(document).ready(function(){
$(“#button”).click(function() {
//var input_string = $(“#forminput”).val();
var Datacalen1 = $(“#forminput”).val();
var Datacalen2 = $(“#forminput”).val();
var Number = $(“#forminput”).val();
var other = $(“#forminput3”).val();
$.ajax({
type:“POST”,
url:“/ajaxjson”,
dataType: “json”,
data: {
mobilenumber_responce: Number,
Datacalen1_responce: Datacalen1,
Datacalen2_responce: Datacalen2,
other_responce: other,
csrfmiddlewaretoken: ‘{{csrf_token}}’,
‘arbitrary-data’: ‘this is arbitrary data’,
‘some-form-field’: $(“myform input:first”).val(), // from form
‘background-color’: $(“body”).css(“background-color”)
// all of this data is submitted via POST to your view.
// in django, request.POST
},
success: function(json){
//alert(data);
//$('#result').append(data);
//$('#result').append( ‘mobile number: ’ + json.server_response + ‘ ’ + json.responce_one + ‘ ’+json.res_other + ‘ ’ +);


}
});
});

});
</script>

views как то так переделал, не работает

def a_json(request):
if request.method == ‘POST’:
message = request.POST
Number = request.POST
datacalen1 = request.POST
datacalen2 = request.POST
other = request.POST
response_dict = {}
response_dict.update({'server_response': message, ‘responce_one’: Number, ‘res_datacalen1’: datacalen1, ‘res_datacalen2’: datacalen2, ‘res_other’: other})

testdatanew=''''''
testdata = ‘[’
import datetime
start = datetime.datetime(2014, 1, 2, 6, 35, 6, 764)
end = datetime.datetime(2015, 2, 2, 6, 55, 3, 381)
findsort1 = ‘startTime’, -1
findsort2 = ‘startTime’, 1
skip = 0
limit = 50
for data in coll.find({'startTime': {'$gte': start, ‘$lt’: end}}).sort().skip(skip).limit(limit):
testdata = testdata + ‘{’+ ‘“Time”: ’ + json.dumps(data.get('Time'), default = json_util.default) +', ‘+ ’“Number”: ‘ + json.dumps(data.get(’Number')) +', ‘+ ’“duration”: ‘ + json.dumps(data.get(’duration')) +', ‘+ ’}' + ‘, ’
testdata = testdata + ‘]’
testdata = testdata.replace(', ]',']')
return HttpResponse(testdata)

как то так, еще вылетает ошибка csrf
Я в этом новичек, подскажите как делать по этапно.

Отредактировано parker77 (Янв. 21, 2015 07:15:38)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version