Чтобы перенаправиться к представлению об успешном использовании AJAX в Django, вы можете использовать несколько методов. Вот несколько подходов:
- Перенаправление JavaScript: в функции обратного вызова для успешного выполнения AJAX используйте JavaScript для перенаправления на нужное представление. Вы можете использовать
window.location.href, чтобы установить новый URL-адрес.
$.ajax({
// AJAX settings...
success: function(response) {
// Redirect to the target view
window.location.href = '/your-target-view-url/';
}
});
- Django HttpResponseRedirect: вместо перенаправления вручную с помощью JavaScript вы можете вернуть ответ JSON, содержащий URL-адрес целевого представления, а затем обработать перенаправление на стороне клиента.
В представлении Django:
from django.http import JsonResponse, HttpResponseRedirect
from django.urls import reverse
def your_ajax_view(request):
# Your view logic...
if success_condition:
redirect_url = reverse('your-target-view-name')
return JsonResponse({'redirect_url': redirect_url})
# Handle failure case...
В обратном вызове AJAX:
$.ajax({
// AJAX settings...
success: function(response) {
// Redirect to the target view
window.location.href = response.redirect_url;
}
});
- Коды состояния HTTP. Другой метод — использовать разные коды состояния HTTP для обозначения успеха или неудачи и соответствующим образом обрабатывать перенаправление на стороне клиента.
В представлении Django:
from django.http import HttpResponse, HttpResponseRedirect
def your_ajax_view(request):
# Your view logic...
if success_condition:
return HttpResponse(status=200) # Success status code
else:
return HttpResponse(status=400) # Failure status code
В обратном вызове AJAX:
$.ajax({
// AJAX settings...
success: function() {
// Redirect to the target view
window.location.href = '/your-target-view-url/';
}
});