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

Django模板中截取file.image变量的纯文件名问题

在Django模板中提取文件名(去除前缀路径)

给你三种实用的解决方法:

方法1:使用Django内置的basename过滤器

Django自带了专门提取文件名的过滤器,只需两步:

  1. 在模板开头加载文件系统标签库:
{% load filesystem %}
  1. 在循环中使用过滤器处理变量:
{% for file in files %}
    {{ file.image|basename }}
{% endfor %}

方法2:直接访问FileField的basename属性

如果file.image是Django的FileField或ImageField类型,其对应的File对象自带basename属性,直接调用即可:

{% for file in files %}
    {{ file.image.basename }}
{% endfor %}

方法3:自定义模板过滤器(灵活适配特殊场景)

如果需要自定义逻辑,可自己写一个简单的过滤器:

  1. 在你的Django应用下创建templatetags目录(需包含__init__.py文件),新建custom_filters.py:
from django import template
import os

register = template.Library()

@register.filter
def extract_filename(path):
    return os.path.basename(path)
  1. 在模板中加载自定义过滤器:
{% load custom_filters %}
  1. 使用过滤器:
{% for file in files %}
    {{ file.image|extract_filename }}
{% endfor %}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 05:48:06