views.py
У меня есть функция (для загрузки в формате Excel), например:
def download(request):
testname = request.POST.get('testname')
lis_final=[]
for i in range(0,10):
lis = []
lis.insert(0,testname)
''' like this i had inserted 30 rows '''
lis.insert(29,testname)
lis_final.append(lis)
rb = xlrd.open_workbook(os.path.join(settings.MEDIA_ROOT, 'sample.xls'),formatting_info=True)
r_sheet = rb.sheet_by_index(0)
r = r_sheet.nrows
wb = copy(rb)
sheet = wb.get_sheet(0)
rows_insert = len(lis_final)
for i in range(3,r+rows_insert):
for j in range(0,30):
sheet.write(i,j,lis_final[i-3][j])
response = HttpResponse(content_type='application/vnd.ms-excel')
response['Content-Disposition'] = 'attachment; filename="test.xls"'
wb.save(response)
return response
index.html
У меня есть тег для скачивания:
<div class="col-2">
<a href="javascript:void(0)" id="excel_dwnld"><i class="fa fa-file-excel-o"></i> Download</a>
</div>
И я вызываю эту функцию в js для загрузки файла как:
$(document).on("click","#excel_dwnld",function(){
var testname=$("#id_testname").val();
var form = document.createElement("form");
var element1 = document.createElement("input");
form.method = "POST";
form.action= "{% url 'test:download' %}";//function call
element1.value=testname;
element1.name="testname";
element1.setAttribute("type", "hidden");
form.appendChild(element1);
document.body.appendChild(form);
//$("#loader-div").show(); // this is my loader
form.submit();
});
Согласно моему требованию, динамическая форма должна быть создана, и эта форма должна быть загружена в Excel.
Пока форма отправляется, я хочу показать загрузчик. И после отправки и загрузки файла, этот загрузчик должен скрыться. Поскольку это ответ файла, мой загрузчик не скрывается. Пожалуйста, помогите мне.
Заранее спасибо.