如何获取不带扩展名的图像名称
我正在使用此代码,但是输出= imagename.jpg。
{{ post.image.name }}
我想要这样的output = imagename
答案 0 :(得分:1)
您可以使用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 }}
但是请注意,扩展名只是最后一个点之后的部分。某些文件没有扩展名,除非该点是文件名的第一个字符。没有扩展的正式列表。