Как получить имя изображения в Django без расширения имени - PullRequest
1 голос
/ 03 июля 2019

Как я могу получить имя изображения без имени расширения

Я использую этот код, но output = imagename.jpg.

{{ post.image.name }}

Мне нужен этот вывод = imagename

1 Ответ

1 голос
/ 03 июля 2019

Вы можете получить такое имя с помощью 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 <b>noext</b>(value):
    return splitext(value)[0]

В своем шаблоне вы можете загрузить теги шаблона с помощью {% load ospath %}, а затем использовать фильтр шаблона noext:

{% load <b>ospath</b> %}

{{ post.image.name<b>|noext</b> }}

Обратите внимание, что расширение - это только часть после последней точки. Некоторые файлы не имеют расширения, за исключением случаев, когда эта точка является первым символом имени файла. Официального списка расширений нет.

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...