Если это дублирующий вопрос, пожалуйста, отметьте его.У меня есть некоторые данные, которые мне нужно отправить их моему клиенту (его личные данные на моем сайте).Итак, я создал ссылку: экспорт в HTML-файл:
<a href="#" class="export-data">export<i class="ft-download"></i></a>
это моя функция jquery:
$(document).on('click', '.export-data', function(){
// get selected data and send list to backend
var data= []
$('.group-check-data').each(function(){
var checked = $(this).is(':checked');
if (checked == true){
data.push($(this).attr("data-id"));
}
});
console.log(data);
var json_data = {'csrfmiddlewaretoken' : $('.url-csrf').attr('data-csrf'), 'list-data': data};
$.ajax({
type:'POST',
url : $('.url-export-selected-data').attr('data-url-export-selected-data'),
data : json_data,
success : function(response){
$('.result').attr('href', response);
console.log(response);
}
});
});
это мое мнение:
def export_data(request):
user = get_object_or_404(User, username=request.session['username'])
# TODO: generate json of selected data
for key in request.POST.keys():
if key == "list-data[]":
list = request.POST.getlist(key)
for item in list:
path = os.path.join(EXPORT_FOLDER, 'user_{}', 'data_{}').format(user.id, int(item))
try:
shutil.rmtree(os.path.join(EXPORT_FOLDER, 'user_{}', 'data_{}').format(user.id, int(item)))
except:
print("directory does not exist")
if not os.path.exists(path):
os.makedirs(path)
generate_data(user.id, int(item))
# TODO: create zip file and export it to user
archive = shutil.make_archive(os.path.join(EXPORT_FOLDER, 'user_{}', 'compressed').format(user.id), 'zip',
os.path.join(EXPORT_FOLDER, 'user_{}').format(user.id))
response = HttpResponse(archive, content_type='application/zip')
response['Content-Disposition'] = 'attachment; filename=foobar.zip'
return response
Iне могу показать пользователю окно загрузки, я попытался добавить эту ссылку <a href="#" class="result">Result</a>
и поместил ответ в href
, но я получил локальное размещение на моем компьютере (начинается с D: не с localhost: 8000 url).
Я загрузил свою работу на сервер, я получил URL с localhost: 8000, но с / code / добавлен, я не знаю, как.Когда я удаляю / code / и пытаюсь добраться до zip-файла, у меня появляется ошибка django: Page not found
:
Request URL: http://localhost:8000/exported/user_1/compressed.zip
Я новичок в django и чувствую, что здесь что-то не хватает.Спасибо.