Отправьте запрос на View Django, не получив никакого ответа
Я задаю пользователю вопрос на моем сайте и если ответ положительный, я отправляю два данных в View Django с помощью JavaScript файла и используя Ajax. Я хочу получить эти данные в View Django и не отправлять пользователю никакого HttpResponse. Если мы не отправим ответ в представление, оно выдаст ошибку. Как мне это сделать?
Когда условие if request.is_ajax (): Выполняется, я получаю следующую ошибку:
ValueError: Представление tourist.views.planing не вернуло объект HttpResponse. Вместо этого оно вернуло None.
Спасибо
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")
Вы можете вернуть пустой 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-запрос.