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

Django使用CreateView创建帖子时无法正常上传图片问题求助

故障根因

你的前端表单没有配置文件上传所需的enctype属性,浏览器提交表单时不会将选中的图片文件传输给后端,导致Django表单校验时识别不到图片上传,触发必填项报错。Django Admin后台的表单默认自动添加了该属性,因此后台上传功能正常。

解决方案

仅需修改creat-post.html中的<form>标签,添加enctype="multipart/form-data"属性即可,修改后的完整模板代码如下:

{% extends "home/base.html" %}
{% load crispy_forms_tags %}
{% block content %}
   <div>
      <form method="POST" enctype="multipart/form-data">
         <fieldset>
            <legend>Creat Post</legend>
            {% csrf_token %}
            {{ form|crispy }}
         </fieldset>
         <button class="btn btn-primary" type="submit">Post</button>
      </form>
   </div>
{% endblock %}
补充说明

如果你后续不使用Django通用视图、自定义表单处理逻辑时,需要手动将request.FILES传入表单实例,示例如下:

form = PostForm(request.POST, request.FILES)

当前你使用CreateView通用视图,无需额外修改视图代码,模板修改后即可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:06:03