2016-09-02 3 views
0

Я в настоящее время передаю данные через запрос POST, используя следующий метод jQuery ajax, и я успешно получаю результат возврата в моей консоли (см. Ниже), в котором отображается JSON запрос, который был отправлен на сервер. Однако я не могу понять, как разбирать объект JSON в представлении Django. Что я пишу свое мнение, чтобы я мог проанализировать свой объект JSON и получить «schedule_name», чтобы выполнить приведенную ниже команду в представлении Django. См. Копию моего обзора ниже.Как разбирать объект JSON в Django View from Ajax POST

Schedule.objects.create (schedule_name = Расписание)

$.ajax({ 
 

 
type: "POST", 
 
url: "{% url 'addSchedule' building_pk %}", 
 
dataType: "json", 
 
data: {"json_items" : JSON.stringify(Schedule_Info)}, 
 
success : function(data) 
 
    { 
 
    $('.todo-item').val(''); // remove the value from the input 
 
    console.log(data); // log the returned json to the console 
 
    console.log("success"); // another sanity check 
 
    alert("Sucess"); 
 
     
 
    },

JSON-вывода в консоли после подачи запроса

json-items: "{ 
 

 
"nameOfSchedule":{"schedule_name":"Schedule"}, 
 

 
"Rooms":[ 
 
\t {"room_rank":"1","room_name":"Room 101 "}, 
 
\t {"room_rank":"2","room_name":"Room 102 "}, 
 
\t {"room_rank":"3","room_name":"Room 103 "}, 
 
\t {"room_rank":"4","room_name":"Room 104 "} 
 
\t ], 
 

 
"Users":[ 
 
\t {"user_name":"[email protected]"}, 
 
\t {"user_name":"[email protected]"} 
 
\t ] 
 
}"

Django View 

def addSchedule(request, building_id): 

    building_pk = building_id 

    b = Building.objects.get(pk=building_pk) 
    floor_query = b.floor_set.all() 
    master_query = floor_query.prefetch_related('room_set').all() 

    if request.is_ajax() and request.POST: 
     data = request.POST 

    ### Input the schedule name in the datase by parsing the JSON object 

     return HttpResponse(json.dumps(data),content_type="application/json") 

    else: 
     return render(request, 'scheduler/addSchedule.html', {'building_pk' : building_pk, 
                 'building_query': master_query 

                  }) 
+0

Возможный дубликат [ Разбор значений из файла JSON в Python] (http://stackoverflow.com/questions/2835559/parsing-values-from-a-json-file-in-python) – souldeux

ответ

0

Я решил проблему путем внесения следующих изменений в моей Django

Django view 

data = json.loads(request.POST.get('json_items')) 

name = data['nameOfSchedule']['schedule_name'] 
Schedule.objects.create(schedule_name = name) 
0

Вы можете использовать JsonResponse для этого:

return JsonResponse({'this': "will be converted to json"}); 

Смотрите https://docs.djangoproject.com/el/1.10/ref/request-response/ для получения дополнительной информации

+0

Это не работает. Пытаясь получить доступ к «nameOfScedule» из моего объекта JSON, и я получаю ошибку 500. –

+0

Почему вы пытаетесь получить доступ к данным внутри объекта ответа? Можете ли вы вставить код? –

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