You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django网站已上传.docx文件无法下载,请求技术协助

问题排查与修复方案

你的代码存在多处语法和逻辑错误,直接导致下载功能失效,下面逐个修正:

1. 模型代码错误

model.Model拼写错误,正确写法是models.Model,同时别忘了导入models模块:

from django.db import models

class Files(models.Model):
    name = models.CharField(max_length=200)
    doc_File = models.FileField(upload_to='media')

2. 视图代码错误

Files.objects.filter('doc_File')语法完全错误,filter()需要传入键值对格式的条件;如果要获取所有上传文件,直接用all()即可:

def Uploaded(request):
    files = Files.objects.all()  # 变量名改为files,贴合多文件场景
    return render(request, 'uploaded_files.html', {'files': files})

3. URL配置错误

引号未闭合,路径缺少结尾斜杠,修正后:

from django.urls import path
import views

urlpatterns = [
    # 其他URL配置...
    path('file/', views.Uploaded, name='file'),  # 闭合引号,添加结尾斜杠
]

4. HTML模板错误

  • {% url 'f.url' %}用法错误:url标签用于生成路由URL,文件下载链接直接用模型中doc_File字段的url属性即可
  • Download属性不符合HTML标准,需小写为download
  • 显示文本应该用文件名(模型中的name字段或doc_File.name),而非不存在的f.url

修正后的模板代码:

{% block content %}
    <h4>Download Document Below</h4>
    {% for f in files %}  <!-- 变量名要和视图传入的files对应 -->
        <a href="{{ f.doc_File.url }}" download>{{ f.name }}</a>
    {% endfor %}
{% endblock %}

5. 关键配置:媒体文件访问设置

Django默认不会公开上传的媒体文件,必须在项目中添加以下配置:

settings.py

import os

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

项目根URL配置

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # 你的其他URL配置...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

完成以上修正和配置后,用户点击链接即可正常下载docx文件。

内容的提问来源于stack exchange,提问作者alphies pro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 13:15:31