Отправьте запрос на просмотр Django, не получив никакого ответа

#django #ajax #httpresponse

#джанго #аякс #httpresponse

Вопрос:

Я задаю пользователю вопрос на своем веб-сайте, и если ответ «да», я отправлю два данных для просмотра Django с помощью файла JavaScript и с помощью Ajax. Я хочу получить эти данные в представлении Django и не отправлять пользователю никакого HttpResponse. Если мы не отправим ответ в представлении, он выдаст ошибку. Как мне это сделать?

Когда выполняется условие if request.is_ajax ():, я получаю следующую ошибку:

Ошибка значения: Представление tourist.views.plan не вернуло объект HttpResponse. Вместо этого он ничего не вернул.

Спасибо

  def planing(request):     if request.is_ajax():  # Get user location from user location.js file:  latitude = request.POST.get('latitude', None)  longitude = request.POST.get('longitude', None)   # To save data  request.session['latitude'] = latitude  request.session['longitude'] = longitude    elif request.method == "GET":  return render(request, "tourist/planing.html")      elif request.method == "POST":  # To retrive data:  latitude = request.session.get('latitude')  longitude = request.session.get('longitude')  if latitude is not None :  latitude = float(latitude)  longitude = float(longitude)    .  .  .  return render(request, "tourist/map.html")    

Ответ №1:

Вы можете вернуть пустой JSON. Вот так:

 from django.http import JsonResponse  if request.is_ajax():  # Get user location from user location.js file:  latitude = request.POST.get('latitude', None)  longitude = request.POST.get('longitude', None)   # To save data  request.session['latitude'] = latitude  request.session['longitude'] = longitude  return JsonResponse({})  

Это гарантирует, что на запрос AJAX будет получен ответ.