Я хочу загрузить файлы из столбцов DataTable, HTML-код, как показано ниже:
$(document).ready(function() {
var table = $('#sample').DataTable({
"serverSide": true,
"ajax": "/api/sample/?format=datatables",
"columns": [
{"data": "hospital_name"},
{"data": "report_path", "render":function(data,type,row,meta){
return '<a href="{% url 'downloads' "'+data+'" %}">Download</a>'
Загрузка всегда не удалась. Возможно, что-то не так с:
return 'Download'
Как я могу отправить "report_path" функции просмотра загрузок и инициировать загрузку правильно.
downloads in views.py:
def downloads(request, filename):
file_pathname = filename
with open(file_pathname, 'rb') as f:
file = File(f)
response = HttpResponse(file.chunks(),content_type='APPLICATION/OCTET-STREAM')
response['Content-Disposition'] = 'attachment; filename=' + filename
response['Content-Length'] = os.path.getsize(file_pathname)
return response
urls.py:
urlpatterns = [
url('^admin/', admin.site.urls),
url('^api/', include(router.urls)),
url('$', views.index,name='htdbs'),
url('htdbs/', include('htdbs.urls')),
url(r'^downloads/(?P<filename>.*)$', views.downloads, name='downloads')
]
Я поместил загруженный файл в MEDIA_ROOT, seetings.py:
.
# media storage
MEDIA_ROOT = 'D:/uploads/'
MEDIA_URL = '/uploads/'
в файле models.py:
report_path = models.FileField(upload_to=settings.MEDIA_ROOT+'/%Y/%m/%d')
Итак, как мне успешно загрузить загруженный файл pdf / docx?