首页 > 解决方案 > 如何下载存储在 django 文件夹中的文件

问题描述

我有一个应用程序来存储收到的邮件文件。

现在,我希望用户能够可视化(下载)这些保存在系统中的文档,无论其格式如何。但是,每当我在文档关节列中单击文档链接时,它都会下载一个网页,该网页包含页面的全部内容,包括导航栏和所有内容。这是我的 HTML 表格的代码。

<div class="modal-body">
    <table class="table table-striped table-hover" id="ListeArrive">
        <thead>
            <tr>
                <th scope="col">Réferences</th>
                <th scope="col">Titres des document</th>
                <th scope="col">Documents joints</th>
                <th scope="col">Classé dans le dossier</th>
            </tr>
            </thead>
            <tbody>
                {% for document in documents %}
                <tr>
                    <td><a href="">{{ document.courrier }}</a>
                        <a href=""><button type="button" class="btn btn-info">Détail</button></a>
                    </td>
                    <td>{{ document.titre }}</td>
                    <td><a href="" download>{{document.file}}</a></td>
                    <td>{{ document.classer_dans }}</td>
                </tr>
                {% endfor %}
        </tbody>
    </table>
</div>

这是model.py代码:

class DocumentsArrivee(models.Model):
    titre = models.CharField(_('Titre du document'), max_length=200, null=False)
    file = models.FileField(_('Document joint'), upload_to='courrier_arrive/%Y/%m/%d')
    courrier = models.ForeignKey(CourrierArrive, on_delete=models.CASCADE, null=True)
    classer_dans = models.ForeignKey(DossierArrivee, on_delete=models.CASCADE)
    
    def __str__(self):
        return self.titre

这是views.py显示表格内容的列表

def document_list_arrive(request):
    documents = DocumentsArrivee.objects.all()
    return render(request, 
                 'Documents/arrives/ListArrivee.html',
                 {'documents':documents})

我希望能够通过单击 HTML 表上的链接而不是获取整个 HTML 页面来下载附件。

在此处输入图像描述

标签: python-3.xdjango-viewsdjango-templates

解决方案


推荐阅读