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

Django服务器从数据库调取图片赋值给img src报404错误如何解决

问题解决步骤

1. 修正模板中图片路径的写法

你当前模板中直接使用{{ post.image }}调用ImageField字段,无法直接得到可用的访问路径,需要调用字段的url属性,同时修正标签语法错误,修改后的模板代码如下:

{% extends 'blog/base.html' %}

{% block content %}
    {% for post in posts %}
        <article class="media content-section">
            <img src="{{ post.image.url }}" width="200" height="200" alt="{{ post.first_name }}的证件照">
        </article>
    {% endfor %}
{% endblock content %}

注意:删除了src属性值里的多余空格,补全了img标签的闭合和alt属性,避免语法错误

2. 检查settings.py的媒体文件配置

确保你的项目配置文件(settings.py)中已经添加了媒体文件的相关配置:

# 媒体文件访问前缀
MEDIA_URL = '/media/'
# 媒体文件实际存储的本地路径
MEDIA_ROOT = BASE_DIR / 'media'

配置完成后,你上传的图片会自动存放在项目根目录的media/document_pics路径下。

3. 配置开发环境的媒体文件路由

Django默认在开发环境下不会自动处理媒体文件的访问请求,需要在项目根目录的urls.py中添加路由规则:

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

urlpatterns = [
    # 你原来的其他路由配置保持不变
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

注意:该配置仅在DEBUG=True的开发环境生效,生产环境需要用nginx等服务处理静态/媒体文件请求

额外小问题修正

你的Id模型的__str__方法里属性名写错了,first_nam少了末尾的e,修改为:

def __str__(self):
    return self.first_name

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 20:39:04