Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Как преобразовать данные Ajax-запроса в Django [RSS Feed]

#1 Дек. 3, 2012 19:26:46

Bandicoot
От:
Зарегистрирован: 2011-11-16
Сообщения: 47
Репутация: +  0  -
Профиль   Отправить e-mail  

Как преобразовать данные Ajax-запроса в Django

Скрипт на Jquery отсылает Ajax запрос на сервер. К этому запросу прикреплена строка, которую сервер должен получить, преобразовать в число и отослать обратно скрипту

Код скрипта:

$(function(){
	$("#add-more-button").click(function() {
		var displayedPostsCount = $(".post").length;
		$.ajax({
			type: "post",
			url: "/add-more/",
			data: displayedPostsCount.toString(),
			success: function (data) {
				$("#added").html(data);
			},
			dataType: "text",
		});
	});
});

Функция в views.py:
@csrf_exempt
def add_more(request):
	if request.is_ajax():
		posts_count = request.POST
		upd_posts_count = int(posts_count) + 5
	return HttpResponse(upd_posts_count)

urls.py:
url(r'^add-more/$', 'add_more'),

Получаю ошибку 500 (internal server error) при любых попытках обработать значение request.POST

Как его изменить? Что я делаю не так?

Офлайн

#2 Дек. 3, 2012 19:51:50

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как преобразовать данные Ajax-запроса в Django

Bandicoot
Получаю ошибку 500 (internal server error) при любых попытках обработать значение request.POST
Даже если сервер возвращает ошибку 500, как правило клиенту приходит более-менее вменяемое описание ошибки (если DEBUG=True), посмотрите нормальным дебаггером, что пишет.
На первый взгляд, косяк тут
posts_count = request.POST
upd_posts_count = int(posts_count) + 5
Вы пытаетесь привести HttpRequest к интеджеру, видимо забыли
request.POST['some_key']



Отредактировано FishHook (Дек. 3, 2012 19:57:05)

Офлайн

#3 Дек. 3, 2012 19:59:41

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Как преобразовать данные Ajax-запроса в Django

Если view вызывается именно так, как показали, то нужно не request.POST использовать, который содержит пост параметры, а request.body - сырые данные.
А если функция написана так же как в посте, то еще и upd_posts_count не инициализирован в случае not request.is_ajax()

Bandicoot
Получаю ошибку 500 (internal server error) при любых попытках обработать значение request.POST
Включите отладку, ошибки понятнее будут выглядеть.

Офлайн

#4 Дек. 5, 2012 10:03:46

Bandicoot
От:
Зарегистрирован: 2011-11-16
Сообщения: 47
Репутация: +  0  -
Профиль   Отправить e-mail  

Как преобразовать данные Ajax-запроса в Django

Спасибо, вроде разобрался

Офлайн

  • Начало
  • » Django
  • » Как преобразовать данные Ajax-запроса в Django[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version