Не удается разобрать данные JSON при автозаполнении jQuery - PullRequest
0 голосов
/ 23 сентября 2011

У меня проблемы с получением автозаполнения для работы, и я считаю, что это из-за синтаксического анализа.

Код JavaScript:

$('#id_emp_name').autocomplete({
    source: '/mycompany/employees.json',
    minLength: 1,
    dataType: 'json',
    delay: 0,

    parse: function(data) {
        var parsed = [];

        for(var i = 0; i < data.fields.length; i++) {
            parsed[parsed.length] =
            {
                data: data.fields[i],
                value: data.fields[i].eng_name,
                result: data.fields[i].eng_name
            };
        }
        return parsed;
    },

    formatItem: function(item) {
        var name = '';
        name = '(' + item.eng_name + ', ' + item.rank + ')';
        return name;
    }
});

Пример вывода JSON: url.com/mycompany/employees.json?term=e:

[
    {
        "pk": 1,
        "model": "system.employees",
        "fields": {
            "salary": "1234",
            "rank": "manager",
            "entity_status": "n1",
            "chi_name": "n/a",
            "eng_name": "Eli",
            "department": "marketing",
            "employment_end_date": null,
            "employment_date": "2011-09-20"
        }
    }
]

Вид:

def employeeJSON(request):

    if request.method == 'GET' and request.GET['term']:

        q_term = request.GET['term']
        emp_list = Employees.objects.filter(eng_name__icontains=q_term)
        json_serializer = serializers.get_serializer('json')()
        json_data = json_serializer.serialize(emp_list, ensure_ascii=False)

        return HttpResponse(
            json_data, mimetype='application/json; charset=utf-8'
        )

Я использую jQuery UI автозаполнение. Я не получаю значений при вводе в текстовое поле, всплывающее окно автозаполнения частично выскакивает без значений.

Однако всякий раз, когда я печатаю, я вызываю GET-запросы:

[23/Sep/2011 18:59:51] "GET /mycompany/employees.json?term=e HTTP/1.1" 200 241
[23/Sep/2011 18:59:53] "GET /mycompany/employees.json?term=el HTTP/1.1" 200 241
...