Передача JSONified объекта в серверную часть в Django? - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь превратить Объект, созданный в js, в JSON и затем переданный моему бэкэнду в Django.

Сначала я создаю список списков:

function get_account_info(){
    var account_list = [];
    $('.card').each(function(e){
        var account = [];
        account.push($(this).find('.name').val());
        account.push($(this).find('.username').val());
        account.push($(this).find('.password').val());

        if(account[0] != null){
            account_list.push(account);
        }
    })
    return account_list;
}

Затем я пытаюсь опубликовать его:

var account_info_json = JSON.parse(get_account_info());
        $.ajax({
            type:'POST',
            url:'/create_new_group/create_group/',
            data:{
                csrfmiddlewaretoken:$('input[name=csrfmiddlewaretoken]').val(),
                account_info: account_info_json,
            } ,
            success:function(data){
                    if(data.status == 1){
                            //success!
                            console.log('Success!')
                    }
                    else if(data.status == 2){
                            //failed
                            console.log('Failed!')
                    }
            }

И это то, что я получаю, когда печатаю (json.dumps (request.POST)) в моем views.py

{"csrfmiddlewaretoken": "token_data_is_here", "account_info": "[[\"1111111\",\"1111111\",\"1111111\"],[\"222222\",\"222222\",\"222222\"]]"}

Я могу получить доступ к этим данным только как движение, а не JSON.Как я могу сделать так, чтобы я получил к нему доступ как JSON?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

все данные будут преобразованы в строку перед отправкой, поэтому, когда дело доходит до django, вам нужно сначала преобразовать строку в json.

для преобразования из строки в json:

import json
str = json.loads(json_data)

для получения JSON из строки:

import json
json_data = json.loads(str)

в вашем случае вам нужно преобразовать строку в json, прежде чем обращаться к ней как к словарю в python

надеюсь, это поможет !!

0 голосов
/ 10 ноября 2018

Сначала необходимо десериализовать строку json:

import json
account_info = json.loads(request.POST['account_info'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...