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

Django使用{% include %}引入上传模板后文件上传失败问题排查

文件上传失败问题排查与解决

问题现象

  • 直接访问/upload_view/打开file_upload.html模板上传文件时,服务器日志显示:
    [13/Nov/2022 08:00:54] "POST /upload_view/ HTTP/1.1" 200 948
    
    文件可成功保存至media根目录。
  • 通过访问/或/index/打开引入了file_upload.html的index.html模板上传文件时,服务器日志显示:
    [13/Nov/2022 08:02:59] "POST / HTTP/1.1" 200 1538
    
    文件未保存到media目录。

核心原因

表单未指定action属性,导致提交路径随当前页面变化:

  • 直接访问/upload_view/时,表单默认提交到当前路径/upload_view/,对应处理上传逻辑的upload_view视图,因此能正常保存文件。
  • 在index.html页面时,当前路径是/或/index/,表单默认提交到当前路径,对应index_view视图,但该视图没有任何处理POST请求和文件上传的代码,所以文件不会被保存。

解决方法

给表单明确指定提交目标URL,确保无论表单在哪引入,都能提交到正确的处理视图。修改file_upload.html中的表单代码:

{% block content %}
<p>Upload</p>
<form method="POST" enctype="multipart/form-data" action="{% url 'fileupload' %}">
    {% csrf_token %}
    <input type="file" name="filename">
    <button type="submit"> Upload file</button>
</form>
{% endblock %}

这里用Django的{% url %}标签根据URL配置中name='fileupload'的路由生成正确的URL,避免硬编码路径。

内容的提问来源于stack exchange,提问作者Tiago Mendes

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:50:43