Мне нелегко получить правильное поле из объекта из запроса ajax get. Запрос ajax находится в приложении Django и соответствует представлению. Линия:Невозможно получить данные из массива Json через запрос get ajax
console.log(data);
отображает все данные в объекте. Я пытаюсь вывести имя пользователя в console.log()
, но я не могу это сделать.
Я пробовал много вариантов, т. Е. Я использовал фильтр вместо того, чтобы попасть в раздел просмотра Django. Я попытался зациклиться на данных и использовать [i], но пока ничего не получилось.
Надеюсь, у кого-то есть идея, как решить эту проблему. Я прикрепил представление django, представление шаблона и выход консоли консоли Chrome.
Вид Джанго раздел:
def Data(request, user_id):
if request.is_ajax():
sidebar_data = serializers.serialize("json",
[User.objects.get(id=user_id)])
return HttpResponse(
JsonResponse({'sidebar_data': sidebar_data}),
content_type="application/json"
)
return HttpResponse("not a ajax request")
Вид шаблона:
$(".test{{ user.user.id }}").click(function() {
$.ajax({
url : ‘xxx/‘,
dataType : 'json',
method : 'GET',
success: function(data)
{
// this works - outputs all data
console.log(data);
// this does not work
console.log(data.sidebar_data.fields[1].username);
},
failure: function(){
}
});
});
Выход для браузера в хромированной консоли:
Object {
sidebar_data: "[{"fields": {"username": “xxx”, "first_name": “xxx”}, "model": "auth.user", "pk": 989}]”}
Если я использую console.log (data.sidebar_data); Я получаю следующий результат, который является шагом ближе. Но как только я попробую любую комбинацию с полями или именем пользователя, я получу неопределенную ошибку.
[{"fields": {"username": “xx”, "first_name": “xxx”}, "model": "auth.user", "pk": 989}]
Здесь не проходит какой-либо информации $ .ajax ({url: 'xxx /', dataType: 'json', method: 'GET', ..., где ваши данные? s data: {} –
try console.log (data.sidebar_data.fields ['username']) –
Привет, Ajax-функция url - вызывает URL-адрес django и соответствующее представление, которое является ответ Json. Метод get упаковывает его в данные и выводит его в функцию успеха. Все это работает отлично, и console.log (data) также выводит все данные из таблицы базы данных. Я просто не могу понять, как получить доступ к имени пользователя. – provoke2015