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

如何在HTML模板中加载Django模型的静态文件?

修正步骤

1. 修正模型的上传路径函数

article_image_path 不需要添加 static/ 前缀,因为 STATICFILES_DIRS 已经指定了 BASE_DIR / "static" 作为静态文件根目录,上传路径应相对该目录:

def article_image_path(instance, filename):
    return f"images/article_image/{filename}"

2. 修复模板中的图片引用

{% static %} 标签内不能嵌套 {{}} 模板变量,正确写法是直接将 article.image.name 作为参数传入标签:

<img src="{% static article.image.name %}" alt="Article image">

如果更规范地处理用户上传内容,推荐使用Django媒体文件机制,此时模板可直接调用图片的URL属性:

<img src="{{ article.image.url }}" alt="Article image">

3. 调整Settings配置(媒体文件方案推荐)

若采用媒体文件方案,需在 settings.py 中添加以下配置:

# 媒体文件配置
MEDIA_URL = 'media/'
MEDIA_ROOT = BASE_DIR / 'media'

同时修改模型的上传路径函数,路径相对 MEDIA_ROOT:

def article_image_path(instance, filename):
    return f"article_images/{filename}"

并在项目的 urls.py 中添加媒体文件路由:

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

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

4. 验证路径一致性

  • 静态文件方案:确保实际图片存放在 static/images/article_image/ 目录
  • 媒体文件方案:确保上传的图片存放在 media/article_images/ 目录

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 04:20:16