温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - How to get image name in django without extension name
django django-templates

其他 - 如何在Django中获取没有扩展名的图像名称

发布于 2020-03-27 11:29:08

如何获得没有扩展名的图像名称

我正在使用此代码,但输出= imagename.jpg。

{{ post.image.name }}

我想要这样的输出=图像名称

查看更多

查看更多

提问者
Enes
被浏览
136
Willem Van Onsem 2019-07-03 23:05

您可以使用os.path.splitext[Python-doc]获得此类名称,以在“根”和“扩展名”中分割文件名。但是您当然不能在Django模板中访问它。但是您可以定义模板过滤器

在您的应用中,您可以在名为的模块的文件中定义此类模板过滤器,templatetags例如ospath.py

# app/templatetags/ospath.py

from os.path import splitext

from django import template


register = template.Library()

@register.filter
def noext(value):
    return splitext(value)[0]

然后,您可以在模板中使用加载模板标签{% load ospath %},然后使用noext模板过滤器:

{% load ospath %}

{{ post.image.name|noext }}

但是请注意,扩展名只是最后一个点之后的部分。某些文件没有扩展名,除非该点是文件名的第一个字符。没有官方的扩展名列表。