Загрузка файла django не начинается после ajax-поста
загрузка не начинается после ajax-поста.
Я хочу сделать только csv-файл, в котором строки выбираются флажком.
Из журнала регистрации видно, что все в порядке. Ответ возвращается. но загрузка не начинается в браузере.
view.py
body = request.body
checked = json.loads(body)
db_sel_columns, column = get_column_selected(request)
rows_vbase = Vbase.objects.all().values(*db_sel_columns)
rows_filter = baseFilter(request.POST, queryset=rows_vbase)
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename=tw.csv'
response.write(u'\ufeff'.encode('utf8'))
writer = csv.DictWriter(response, fieldnames=db_sel_columns)
writer.writeheader()
# filter checked
for data in rows_filter.qs:
row_ci = data['snCI']
row_ci = row_ci.strip().lower()
if len(checked) > 0:
if bool(re.search(row_ci, str(checked), re.IGNORECASE)):
writer.writerow(data)
else:
writer.writerow(data)
return response
ajax
$('#submitcsv').click(function(){
urlpath = $("#submitcsv").val();
csrf_token = document.getElementsByName('csrfmiddlewaretoken')[0].value
var checkedCheckboxes = [];
$('.checkboxAll').each(function(){
if ($(this).is(':checked')) {
checkedCheckboxes.push($(this).val())
}
});
var checkedCheckboxesAtoJSON = JSON.stringify(checkedCheckboxes);
$.ajax({
type: "POST",
url: urlpath,
headers: {
'Content-Type':'application/json; charset=utf-8',
'X-CSRFToken': csrf_token
},
data: checkedCheckboxesAtoJSON,
dataType: "json",
caches: false,
success: function(res, status) {
console.log('POST success = ' + res)
console.log('POST success = ' + status)
},
error: function(res) {
console.log('POST error = '+res.status)
}
});
});
шаблон.py
<button class="btn fa-solid fa-file-csv" id="submitcsv" value="{% url 'download_js' %}?{{ filter_url.urlencode }}">  csv JS</button>