Добавление представления загрузки во время процесса следующего представления в Django
Я хочу добавить страницу загрузки во время процесса, я пробовал все решения здесь в stackoverflow и различных статьях, но я действительно удивлен, что решения не работают для меня, Прошло 2 дня, и я все еще не нашел решение.
У меня есть две страницы Home и datatable Я хочу добавить страницу загрузки, когда я перенаправляю с главной страницы на страницу datatable. Пожалуйста, любая помощь будет высоко оценена.
вот мой view.py :
def home_view(request):
context = {}
context ['form'] = Scraping()
return render(request,'home.html', context)
def datatable_view(request):
if request.method =='POST':
if form.is_valid():
return render(request,'datatable.html')
Как я уже говорил, ajax вызовы должны работать, я попробовал и это работает. вот код В локальном коде мне пришлось установить функцию TimeOut, потому что ответ быстрый, и я не могу увидеть эффект загрузки.
Html:
<style>
.loader {
border: 16px solid #f3f3f3; /* Light grey */
border-top: 16px solid #3498db; /* Blue */
border-radius: 50%;
width: 120px;
height: 120px;
animation: spin 2s linear infinite;
}
@keyframes spin {
0% { transform: rotate(0deg); }
100% { transform: rotate(360deg); }
}
</style>
<div class="loader" style="display: none;" id="id_loader"></div>
Событие щелчка мыши:
function saveProfile() {
var postData = new FormData();
let token = localStorage.getItem("token");
postData.append('profile_id', $("#id_profile_id").val().trim());
postData.append('user_id', $("#id_user_id").val().trim());
postData.append('username', $("#id_username").val().trim());
postData.append('password', $("#id_password").val().trim());
postData.append('first_name', $("#id_first_name").val().trim());
postData.append('last_name', $("#id_last_name").val().trim());
postData.append('phone', $("#id_phone").val().trim());
postData.append('email', $("#id_email").val().trim());
postData.append('address', $("#id_address").val().trim());
$("#id_loader").show()
setTimeout(function () {
axios({
method: "post",
url: "http://192.168.1.249:7001/profile_save/",
data: postData,
headers: { "Content-Type": "application/json", 'X-CSRFToken': '{{ csrf_token }}', Authorization: `Bearer ${token}`, },
}).then(function (response) {
if (response.data && response.data.code == 1) {
$("#id_loader").hide();
swal("Successful!", response.data.msg, "success")
}
else if (response.data.code == 0) {
$("#id_loader").hide();
swal("Oops!", response.data.msg, "error")
}
})
}, 2000);
}