загрузка файла с помощью сообщения ajax

Существует страница wiki по созданию моделей динамически, хотя прошло некоторое время с момента последнего обновления:

DynamicModels Django

Есть также несколько приложений, предназначенных для этого прецедента, но я не думаю, что кто-либо из них активно поддерживается:

Django Packages: Динамические модели

Я понимаю, что если вы уже настроены на Django, это не очень полезно, но это пример использования, для которого Django не очень хорош. Возможно, было бы более дорого бороться с абстракциями, предоставляемыми модельным слоем Django, чем просто использовать psycopg2 или любой другой адаптер, подходящий для ваших данных.

В зависимости от того, какие операции вы собираетесь выполнять ваши данные, также может быть разумнее использовать одну модель с индексированным полем, которая позволяет различать, в какой таблице была эта строка, а затем оглашать данные этим столбцом.

Если вам все еще нужно для этого общая идея была бы следующей:

  1. Создайте метакласс, который расширяет модельный ряд Django. Этот метакласс, который вы использовали бы в качестве фабрики для своих реальных моделей.
  2. Рассмотрите материал, упомянутый на этой странице wiki, как обход проблемы с app_label.
  3. Создайте и выполните sql для создания модель, также показанная на странице wiki.

-1
задан danny gonzalez 13 July 2018 в 22:42
поделиться

1 ответ

Это может быть не самый лучший способ, но вот что мне нужно было сделать, поскольку моя версия jquery не самая новая, мне пришлось сохранить функцию ajax в переменное имя xhr, чтобы получить заголовок ответа

success: function (data) {
 var disposition = xhr.getResponseHeader('content-disposition');
 var matches = /"([^"]*)"/.exec(disposition);
 var filename = (matches != null && matches[1] ? matches[1] : 'file.pdf');

 var blob = new Blob([data], {type: 'application/pdf'});
 var link = document.createElement('a');
 link.href = window.URL.createObjectURL(blob);
 link.download = filename;

 document.body.appendChild(link);

 link.click();

 document.body.removeChild(link);

}

, адаптированный из https://nehalist.io/downloading-files-from-post-requests/

0
ответ дан danny gonzalez 17 August 2018 в 12:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: