via ajax, je veux poster des données et si le modèle est enregistré avec succès, renvoie la réponse en tant qu'objet JSON.Django et Ajax basés sur l'enregistrement du modèle
Voici mon jquery base ajax message:
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.");
}
});
Et moi Django qui gère cet appel ajax pour enregistrer des objets iEventPlan et la réponse de retour:
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.")
Ceci est l'erreur que je reçois:
JSONDecodeError at /my-ajax-url/
No JSON object could be decoded: line 1 column 0 (char 0)
Ce que je fais mal? Je serai reconnaissant si vous me montrez la manière appropriée de manipuler des économies et des réponses de modèle de django basées par ajax.
Je pense que la dernière ligne de ce code doit être: return HttpResponse («Non autorisé ») –