через ajax, я хочу опубликовать некоторые данные, и если модель успешно сохраняется, возвращается ответ как объект JSON.Сохранение модели на основе Django и Ajax
Вот мой JQuery на основе Ajax пост:
var requestData = { 'ievent_id': type , 'channel_id': CHANNEL_ID , 'start_date': dateToStrConverter(start_date) , 'end_date': dateToStrConverter(end_date) };
$.ajax({
type: "POST",
url: "my-ajax-url/",
data: requestData,
dataType: "json",
success: function(data){
console.log("ID:" + data.plan_id + " Error:" + data.error);
},
error: function(msg){
alert("Theres an error with the server.");
}
});
И мой взгляд Джанго, который обрабатывает этот АЯКС вызов, чтобы сохранить объекты iEventPlan и вернуть ответ:
from django.utils import simplejson as json
def planner_save_view(request):
if request.method == "POST" and request.is_ajax():
root = json.loads(request.raw_post_data[0])
##data
ievent = iEvent.objects.get(pk = root['ievent_id'])
channel = Channel.objects.get(siservice = root['channel_id'])
start_date = datetime.strptime(root['start_date'],'%d-%m-%Y %H:%M')
end_date = datetime.strptime(root['end_date'],'%d-%m-%Y %H:%M')
response_dict = {}
try:
plan = iEventPlan(red_button=ievent,channel=channel,start_date=start_date,end_date=end_date)
plan.save()
response_dict.update({'plan_id': plan.id})
except:
response_dict.update({'error': "theres a problem."})
return HttpResponse(json.dumps(response_dict), mimetype="application/json")
else:
HttpResponse("Not authorized.")
Это ошибка, я получаю:
JSONDecodeError at /my-ajax-url/
No JSON object could be decoded: line 1 column 0 (char 0)
Что я делаю неправильно? Я буду признателен, если вы продемонстрируете мне правильный способ управления экономией и ответами модели django на основе ajax.
Я думаю, что последняя строка этого кода должна быть: возвращение HttpResponse («Не разрешено») – 2011-08-11 22:23:52