2013-07-18 6 views
2

У меня есть view.py, который выглядит следующим образом: EDIT: теперь выглядит следующим образомЗагрузка данных в Javascript из представления Django?

def sessionscheduler(request): 
    c = connection.cursor()    
    c.execute("SELECT * FROM meter_schedule WHERE id = 1") 
    scheduleArray = [] 
    for row in c.fetchall(): 
     data = dict([('lastUpdate',row[1]), ('weekdaysOn',row[2]), ('weekdayChargeRateOffPeriodKwh',row[3]), ('weekdayEveningChargeOn',row[4]), ('weekdayEveningStart',row[5]), 
        ('weekdayEveningDuration',row[6]), ('weekdayDayChargeOn',row[7]), ('weekdayDayStart',row[8]), ('weekdayDayDuration',row[9]), ('weekendsOn',row[10]), 
        ('weekendChargeRateOffPeriodKWh',row[11]), ('weekendEveningChargeOn',row[12]), ('weekendEveningStart',row[13]), ('weekendEveningDuration',row[14]), 
        ('weekendDayChargeOn',row[15]), ('weekendDayStart',row[16]), ('weekendDayDuration',row[17])]) 
     scheduleArray.append((data)) 
    jscheduleArray = json.dumps(scheduleArray)  
    return render(request, 'sessionscheduler.html', jscheduleArray) 

с помощью отладчика я могу видеть, переменная scheduleArray имеет все данные, которые я хочу загруженные в него.

Как получить доступ к jscheduleArray при загрузке в моем .js-файле?

+0

Я добавил строку ниже jscheduleArray = ... «контекст = {» jscheduleArray ": jscheduleArray} теперь, когда я называю переменной в моем HTML {{jscheduleArray}} Я могу записать данные на страницу, теперь мне нужен javascript для его чтения и завершения действий на основе этих значений. – Khamey

ответ

2

Возможно, ваш сгенерированный JavaScript недопустим. Самый простой способ экспортировать данные из Python в JS - через JSON.

import json 
def sessionscheduler(request): 
    latest_schedule_update = schedule.objects.all() 
    context = {'latest_schedule_update': json.dumps(latest_schedule_update)} 
    return render(request, 'sessionscheduler.html', context) 

И ваш Джанго-шаблон JS

<script> 
    var latest_schedule_update = {{ latest_schedule_update }}; 
</script> 
+0

Это не работает для меня. Это не позволит мне json.dumps (latest_schedule_update). Также кажется, что представление, которое я создал, только вернуло lastUpdate часть данных. Просмотрите мое редактирование, чтобы увидеть, что я делаю сейчас. – Khamey

+0

Oh My. Этот обновленный код сбрасывает список dicts dicts! Я не знаю, как вы используете jscheduleArray, но, пожалуйста, попробуйте 'scheduleArray .append (data) '. – Brian

+0

Я сделал это раньше и не имел никаких проблем, но по какой-то причине, когда я смотрю на данные, отправленные на страницу Я получаю [{ weekdayEveningDuration ": 5.683333333333334, ... когда я пытаюсь разобраться с этими данными, javascript не нравится " любые идеи? – Khamey

0

Не смешивать python и javascript если вы шаблонирования с файла JavaScript, убедитесь в том, что значения приходит с вашего сервера на стороне/django в кавычках.

Смежные вопросы